为什么 `0F 1A /r` 和 `0F 1B /r` 在 Intel MPX 之前是 NOP?

How come `0F 1A /r` and `0F 1B /r` have been NOP before Intel MPX?

在不支持 Intel MPX 的处理器上,文档指出所有 MPX 指令都是 NOP。即,当我查看所有这些说明时,它们似乎都是 0F 1A /r0F 1B /r 无前缀或前缀为 F3F266 字节, 取决于指令。此外,还有像 for BNDMK:

这样的语句

The reg-reg form of this instruction retains legacy behavior (NOP).

我试图在PDF中搜索这些操作码(即我的搜索字符串是0F 1),但我发现只有MPX指令的描述。从 2014 年 2 月开始查看指令集参考,我发现了很多这种形式的指令,但它们不是 NOP,例如F2 0F 12 /rMOVDDUP。并专门寻找 0F 1A0F 1B 我在那里找不到任何东西。

寻找 NOP 我找到了多字节 NOP 0F 1F /0,但它与 MPX 指令形式不一致。

所以我的问题是,在哪里记录了 0F 1A /r0F 1B /r 的遗留行为是 NOP?它是这种形式指令的一些通用规则,还是它们代表 NOP 形式的一些非 NOP 指令(如 90 代表 xchg eax,eax)?

我身边的英特尔 pdf 确实也没有将它们列为 NOP,块 0F 19-1E 在操作码 table A- 中是空的3.两字节操作码映射:08H -- 7FH(第一个字节是 0FH)。脚注说 所有操作码映射中的所有空白都是保留的,不得使用。不要依赖未定义或保留位置的操作。

我还有 AMD pdf 24594--修订版。 3.19--2012 年 9 月,并且确实在操作码 table A-4 中将上述块列为 NOP。辅助操作码映射(双字节操作码),低半字节 8-Fh。但是,实际 NOP 指令的页面仅列出 0F 1F.