эффект неопределенных кодов операций на (исходном) Intel 8086/88

Начиная с оригинала 8086 и 8088 не имеют исключения программного обеспечения для запрещенных команд, как они ведут себя при питании такой, например, "FF FF" (не код операции)? Они останавливаются, это сбрасывает себя, возможно испуская специальный признак цикла на его шине управления?

5
задан Robert Harvey 20 February 2013 в 20:08
поделиться

1 ответ

Если мне не изменяет память, официальное заявление Intel заключалось в том, что все они были NOP.

В действительности, по крайней мере, несколько из неопределенных оп-кодов действительно выполняются как настоящие инструкции, которые дают результат. Например, второй байт AAD или AAM - 00001010. В десятичном исчислении это равно 10. Если вы выполните инструкцию с тем же первым байтом, что и одна из этих команд (1101010101 или 11010100 соответственно), но измените второй байт на другое значение (скажем, 00000100), она выполнит ту же самую основную операцию, но в указанном вами базисе (восьмеричном для 00000100).

Edit: Похоже, вы намерены превратить свой вопрос в вопрос, на который почти никто не может ответить. Вы начали с вопроса о неопределенных оп-кодах, но затем ограничили его некоторым подмножеством тех, которые, по словам Intel, являются неопределенными, и хотите знать только о тех, которые действительно, действительно неопределенные (по какому-то определению, которое, очевидно, существует только в вашей голове).

Единственный вопрос, на который, похоже, вообще можно ответить, это "что сделал ffff?". Когда-то я мог бы ответить на него, но все, что я могу сказать, это "очевидно, ничего запоминающегося"

Что касается утверждения, что это не может быть правильным, вы, похоже, принимаете это за что-то, о чем действительно заботился Intel. По большей части, недокументированные операционные коды были именно такими: недокументированными. Они прилагали значительные усилия, чтобы задокументировать, как все будет работать, если следовать "правилам", но в основном игнорировали то, что произойдет в противном случае.

Судя по всему, все, что может вас удовлетворить, это настоящий 8088/8086, который все еще работает, и с которым вы можете провести тестирование. Желаю вам удачи в поисках.

4
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: