влияние неопределенных кодов операций на (оригинальный) Intel 8086/88 - PullRequest
5 голосов
/ 11 мая 2010

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

Ответы [ 3 ]

4 голосов
/ 11 мая 2010

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

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

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

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

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

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

3 голосов
/ 03 июля 2013

Ну, мы знаем, что делают некоторые неопределенные коды операций. Мой друг реинни, или Эндрю Дженнер, тестировал аппаратные коды для меня 0x60-0x6F. Оказывается, это просто псевдонимы 0x70-0x7F или условные переходы.

РЕДАКТИРОВАТЬ: Другими словами, они, вероятно, не NOP, и протестированные определенно не являются NOP.

0 голосов
/ 28 сентября 2010

Если вы действительно заинтересованы, вы можете приобрести соответствующие компоненты у Jameco (они продают тяги за 8088, 8086 и даже «турбо» клон NEC V20 CMOS) и собрать простую / маленькую машину для тестирования. 1001 *

...