разница между зарезервированными битами и неопределенным битом в регистре флагов процессора Intel 8086

В регистре 16-битных флагов процессора Intel 8086 есть 9 флагов (каждый 1-битный, номера битов 0,2,4,6,7,8,9,10,11, которые мы знаем как ZF,OF, ...) номера битов 1,3,5 помечены как "U" (неопределенные), а номера битов 12,13,14,15 помечены как "R" (зарезервированы).

Мой вопрос заключается в том, в чем разница между зарезервированными битами и неопределенными битами в процессоре Intel 8086?

Спасибо


person mohammad mahed    schedule 09.11.2012    source источник


Ответы (2)


Зарезервированные биты могут быть определены. Неопределенные биты никогда не бывают. Если бит «зарезервирован», он зарезервирован для какой-то конкретной цели. Если это «неопределенно», то на тот момент для этого не было решено.

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

person David Schwartz    schedule 09.11.2012
comment
Спасибо за ответ. в этой конкретной теме, какова цель сохранения битов 12,13,14 и 15 зарезервированными? например, полезны ли они в командах смены сборки, таких как SAR и SHR, или они зарезервированы для целей тестирования? - person mohammad mahed; 09.11.2012
comment
Я не думаю, что это общеизвестно. Что мы знаем, так это то, что 12 и 13 стали уровнем привилегий ввода-вывода, а 14 стал флагом вложенной задачи на больших процессорах. Но, насколько мне известно, никто публично не заявлял, что имела в виду Intel, когда изначально зарезервировала эти флаги. - person David Schwartz; 09.11.2012

Зарезервировано почти всегда означает «Зарезервировано для использования в будущем», чтобы Intel могла добавлять расширения в более поздние процессоры.

Ни один из флагов не является «неопределенным» — все они либо определены, либо зарезервированы. Вы, вероятно, видели таблицу, описывающую, как каждая инструкция влияет на разные флаги, где влияние конкретной инструкции на конкретный флаг может быть неопределенным (даже если этот конкретный флаг не является неопределенным флагом). Примером этого является инструкция IDIV, которая оставляет большинство определенных флагов (переполнение, перенос и т. д.) в неопределенном состоянии.

person Brendan    schedule 09.11.2012
comment
+1 Неопределенный для IDIV и т. д. означает, что текущая микроархитектура, которая использует 30-100 тактов для повторения инструкции div, может изменять некоторые флаги - это, конечно, детерминировано, но лучше всего описывается как неопределенное. - person Aki Suihkonen; 10.11.2012