WikiDer > Незаконный код операции - Википедия
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Машинный код |
---|
Общие понятия |
инструкции |
An недопустимый код операции, также называемый недокументированная инструкция, это инструкция для ЦПУ это не упоминается в какой-либо официальной документации, выпущенной разработчиком или производителем процессора, но, тем не менее, имеет значение. Незаконные коды операций были обычным явлением на старых процессорах, разработанных в 1970-х годах, таких как Технология MOS 6502, Intel 8086, а Зилог Z80. На этих старых процессорах многие из них существуют как побочный эффект разводки транзисторы в ЦП и обычно объединяют функции ЦП, которые не предназначены для объединения. На старых и современных процессорах также есть инструкции, намеренно включенные в процессор производителем, но не задокументированные ни в одной официальной спецификации.
Обзор
Хотя большинство случайных незаконных инструкций имеют бесполезные или даже крайне нежелательные эффекты (например, сбой компьютера), некоторые из них могут иметь полезные функции в определенных ситуациях. Такие инструкции иногда использовались в компьютерные игры 1970-х и 1980-х годов, чтобы ускорить определенные критические по времени разделы. Другое частое использование было в продолжающейся битве между защита от копирования реализации и треск. Здесь они были формой безопасность через безвестность, и их секретность обычно длилась недолго.
Опасность, связанная с использованием незаконных инструкций, заключалась в том, что, учитывая тот факт, что производитель не гарантирует их существование и функционирование, они могут исчезнуть или вести себя по-другому при любом изменении внутренних компонентов ЦП или любой новой версии ЦП, отображая программы, которые используйте их несовместимые с более новыми версиями. Например, ряд более старых Яблоко II игры некорректно работали на более новых Apple IIc, потому что последний использует более новую версию процессора - 65C02 - это устраняет незаконные коды операций.
Более свежие процессоры, такие как 80186, 80286, 68000 и его потомки не имеют запрещенных кодов операций, которые широко известны / используются. В идеале ЦП будет вести себя четко определенным образом, когда он обнаруживает неизвестный код операции в потоке команд, например, запуск определенного исключения или состояния ошибки. В Операционная системаобработчик исключения или ошибки обычно завершает работу приложения, вызвавшего ошибку. Другой, менее распространенный способ обработки незаконных инструкций - это определение, что они ничего не делают, кроме занимающих время и пространство (эквивалент официального ЦП NOP инструкция); этот метод используется TMS9900 и 65C02 процессоры, среди прочего. В качестве альтернативы, неизвестные инструкции можно эмулировать в программном обеспечении (например, ЗАГРУЗИТЬ), или даже могут быть реализованы «новые» псевдо-инструкции. Немного BIOS, менеджеры памяти и операционные системы используют это, например, чтобы позволить задачам V86 взаимодействовать с базовой системой («bop»).
Несмотря на то, что производитель гарантирует соблюдение таких инструкций, исследования с использованием таких методов, как расплывание обнаружил огромное количество недокументированных инструкций в современных процессорах x86.[1] Некоторые из этих инструкций используются производителями процессоров, что указывает на то, что Intel и AMD знают об инструкции и ее назначении, несмотря на то, что они не указаны ни в одной официальной спецификации. Другие инструкции относятся к производителям или конкретным линейкам продуктов. Назначение большинства недокументированных инструкций x86 неизвестно.
Сегодня детали этой инструкции представляют интерес в основном для точного подражание старых систем.
Смотрите также
- Бэкдор (вычисления)
- Неважно термин
- Пасхальное яйцо (медиа)
- Halt and Catch Fire (вычисления)
- Ошибка Pentium F00F
- Недокументированная функция
Рекомендации
- ^ Домас, Кристофер. "Нарушение набора инструкций x86". Получено 3 января 2018.
- Незаконные коды операций на 6502: http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes (смотрите также Как на самом деле работают нелегальные коды операций MOS 6502)
- Незаконные коды операций на Z80: http://www.myquest.nl/z80undocumented/