在不支持Intel MPX的处理器上,文档说所有MPX指令都是NOP。也就是说,当我查看了所有这些说明时,它们似乎都是0F 1A /r
或0F 1B /r
没有前缀或以F3
,F2
或66
字节为前缀,取决于指示。此外,还有BNDMK
的声明:
该指令的reg-reg形式保留了遗留行为(NOP)。
我试图在PDF中搜索这些操作码(即我的搜索字符串是0F 1
),但我发现只有MPX指令的描述。从2014年2月开始查看指令集参考,我发现了很多这种形式的指令,但它们不是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
)?
答案 0 :(得分:4)
我躺在的intel pdfs确实没有将那些列为NOP
,块0F 19-1E
在操作码表 A-3中为空。双字节操作码映射:08H - 7FH(第一个字节为0FH)。脚注说所有操作码映射中的所有空白都是保留的,不得使用。不要依赖于未定义或保留位置的操作。
我也有AMD pdf 24594 - Rev。 3.19 - 2012年9月,它确实将上述块列为操作码表 A-4中的NOP
。辅助操作码映射(双字节操作码),低半字节8-Fh 。但是,实际NOP
指令的页面仅列出0F 1F
。