2010-05-11 2 views
4

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

ответ

2

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

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

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

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

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

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

+0

«Если память хранится, ... все они были NOP» Мне трудно поверить, что: как бы ЦП знал длину * незаконной инструкции, IOW, сколько байтов пропустить после предполагаемого NOP? Нет, это неправильно. Спасибо, в любом случае. Кто-нибудь еще? Может быть, кто-то с 8086 в рабочем состоянии может проверить реальную вещь (например, в DEBUG) – Ninho

+0

При ответе на мой комментарий выше, я сожалею, что фраза «это не может быть правильно», пожалуйста, не обижайтесь. Дополнение: Пожалуйста, обратите внимание, что исходный вопрос касается действительно/недействительных/опкодов (если есть ...), а не так называемых невозбужденных (и уже известных), в том числе псевдонизированных версий операций doc'd. Конкретно, все ли вы говорите, что выполнение последовательности, начинающейся с «FFFF» на 8086 или 8088, будет только увеличивать IP на 2 и продолжать выборку/выполнение опкодов? – Ninho

+0

Re: Редактирование Джерри Коффина: Вне сомнения, существуют ppl, которые либо знают ответ, либо будут в состоянии делать осмысленные тесты, поэтому я задался вопросом (здесь и в группе Usenet c.l.a.x.) Являются ли такие люди видят мой вопрос и беспокоятся о (исследовании и) ответе, еще предстоит выяснить. Приобретение окаменелости ПК нецелесообразно для этого старика и не стоит того. Большое вам спасибо (первый пользователь этого совета вопросов, я должен дать вам кредиты вроде или иначе признать вашу добрую волю?) – Ninho

0

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

1

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

EDIT: Другими словами, они, вероятно, не являются NOP, а тестируемые определенно не являются NOP.

Смежные вопросы