UD
未定义指令
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
0F FF /r | UD01 r32, r/m32 | RM | 有效 | 有效 | 提出无效的 操作码 例外 。 |
0F B9 /r | UD1 r32, r/m32 | RM | 有效 | 有效 | 提出无效的 操作码 例外 。 |
0F 0B | UD2 | ZO | 有效 | 有效 | 提出无效的 操作码 例外 。 |
D6 | UDB | ZO | 有效 | 不可编码 | 提出无效的 操作码 例外 。 |
操作数编码
每个模式对应上表 Op/En 列的一个取值,说明各操作数按书写顺序分别编码在指令的哪个字段,以及指令对它是读、是写还是两者兼有。
RM
modrm.reglecturaModRM 字节的 reg 字段(第 5-3 位)modrm.rmlecturaModRM 字节的 r/m 字段(第 2-0 位);当 mod 字段要求时,还包括 SIB 字节和位移
实测开销
未实测:不在 64 位处理器上运行。
说明
生成无效的 操作码 例外 。 本指令用于软件测试,以明确生成无效的操作码例外. 此指令的 操作码 保留用于此目的 。 除了提高无效的 操作码 例外外,本指令对处理器状态或内存没有任何影响. 尽管造成无效的操作码例外的是UD指令的执行,但指令指针通过发送例外引用UD指令(而不是以下指令)而保存. 此指令的操作在非64位模式和64位模式中是相同的.
行动
#UD (* Generates invalid opcode exception *);受影响的旗帜
None.
异常
实地址模式
#UD | 在所有操作模式中提高无效的 操作码 例外 。 (UDB 只在 64 位模式中这样做 。) |
保护模式
#UD | 在所有操作模式中提高无效的 操作码 例外 。 (UDB 只在 64 位模式中这样做 。) |
虚拟 8086 模式
#UD | 在所有操作模式中提高无效的 操作码 例外 。 (UDB 只在 64 位模式中这样做 。) |
兼容模式
#UD | 在所有操作模式中提高无效的 操作码 例外 。 (UDB 只在 64 位模式中这样做 。) |
64 位模式
#UD | 在所有操作模式中提高无效的 操作码 例外 。 (UDB 只在 64 位模式中这样做 。) |