1. x87 浮点指令格式


上一页 返回目录 下一页

x87 format

上图是 x87 浮点指令编码格式,这和 x86 的通用指令格式几乎一样,只是少了 immediate 部分

 

1、 legacy prefix 部分

这些是原来的 prefix,即:

 

但是,仅有对 memory 操作数进行修饰的 legacy prefix 才有效,即:address-size override prefix segment override prefix

而其它 prefix 将会被忽略,即:operand size override prefixlock prefixrep/repz prefixrepnz prefix 将被忽略。

关于 legacy prefix 详见:深入了解 prefix

 

2、 REX prefix 部分

对于 x87 指令来说,REX prefix 作用于 memory 操作数寻址上,对 64 位地址中的 base 与 index 寄存器进行寻址。

这和通用指令中的 memory 操作数寻址的 REX prefix 是一致的。

 

3、 x87 的 opcode 部分

x87 浮点指令的 opcode 范围从 D8 ~ DF 共 8 个 opcode

 

4、 ModRM 部分

x87 指令中的 ModRM 部分最大的作用是对 opcode 的补充。

对于有 operands 的 x87 指令来说,ModRM.reg 进行 opcode 补充,ModRM.mod 与 ModRM.r/m 进行 operands 寻址。

而对于无 operadns 的 x87 指令来说,ModRM.reg 和 ModRM.r/m 都可以进行 opcode 补充。

 

5、SIB 部分

和通用指令一样,SIB 字节是对 ModRM 字节的 memory 寻址的辅助寻址。

 

6、displacement 部分

和通用指令一样,这部分提供 memory 操作数中的 offset 值。

 

上一页 返回目录 下一页


mik 写于 2009-05-17 00:38