【2021.01.09】经典变长指令-RegOpcode

回归ModR/M结构:

Mod与R/M共同描述E的意义(内存或者通用寄存器)。

Reg/Opcode描述了G的意义(通用寄存器),但3、4、5字段并不仅仅用来标识寄存器,有些时候用来标识Opcode。

见Table A-2中:

80、81、82、83这几个编码并没有明确给出具体的操作码是什么。

特别说明:凡是出现Grp的,均参见TableA-6。

例如:80 65 08 FF的查表步骤:

  1. 第一个字节位80,查Table-2表,得到对应结构:Eb, lb。
  2. 第二个字节位ModR/M字段,所以查找并拆分65:01 100 101。Mod 与 R/M 字段,查Table2-2表得到对应的结构:[EBP+DIS8]。
  3. 100 字段,查TableA-6表得到对应操作码为:AND。
  4. 最终指令格式:AND [EBP+DIS8], lb、AND BYTE PTR SS:[EBP+08], 0xFF。

猜你喜欢

转载自blog.csdn.net/qq_18120361/article/details/112411582