На процессорах, которые не поддерживают Intel MPX, в документации говорится, что все инструкции MPX являются NOP. А именно, поскольку я просмотрел все эти инструкции, все они выглядят как 0F 1A /r
или 0F 1B /r
без префикса или с префиксом F3
, F2
или 66
байтов в зависимости от инструкции. Кроме того, имеются такие заявления, как для BNDMK
:Каким образом `0F 1A/r` и` 0F 1B/r` были NOP до Intel MPX?
Форма reg-reg этой инструкции сохраняет унаследованное поведение (NOP).
Я пытался искать эти опкоды в PDF (а именно моя строка поиска была 0F 1
), но все, что я нашел там только описание инструкций MPX. Глядя на инструкцию по набору инструкций с февраля 2014 года, я нашел множество инструкций этой формы, но они не были NOP, например. F2 0F 12 /r
является MOVDDUP
. И, глядя конкретно на 0F 1A
и 0F 1B
Мне там ничего не удалось найти.
Ищете NOP Я нашел многобайтовый NOP 0F 1F /0
, но он не совпадает с формой инструкций MPX.
Так что мой вопрос в том, где это задокументировано, что унаследованное поведение 0F 1A /r
и 0F 1B /r
- это NOP? Это какое-то общее правило для этой формы инструкций или, может быть, они представляют собой некоторую инструкцию, отличную от NOP, в форме NOP (например, 90
, стоящей за xchg eax,eax
)?
Итак, я пришел к выводу, что это была недокументированная общедоступная функция, последовательно реализованная Intel и AMD до MPX, и AMD просто выпустила для нее документацию. Понял, спасибо! – Ruslan