assembly 如何从本网站读取x86指令表

2ul0zpep  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(139)

我正在读https://www.felixcloutier.com/x86/mov(mov为例),在88 /rREX + 88 /r甚至REX.W + 8C /r等表中有这些操作码。我在网站上找不到解释。rREXREX.W8C是什么意思?我如何根据此表得出整个mov指令的十六进制值?

watbbzwu

watbbzwu1#

Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 2A第2.2.1节给出了您问题的答案。
REX前缀是在64位模式下使用的指令前缀字节。它们执行以下操作:

  • 指定GPR和SSE寄存器。
  • 指定64位操作数大小。
  • 指定扩展控制寄存器。

Particularities are given in Section 2.2.1.2:

  • 设置REX. W可用于确定操作数大小,但不能单独确定操作数宽度。
  • 当ModR/M reg字段编码GPR、SSE、控制或调试寄存器时,REX. R修改该字段。
  • REX. X位修改SIB索引字段。
  • REX. B修改ModR/M r/m字段或SIB base字段中的base;或者它修改用于访问GPR的操作码reg字段。

请进一步参阅Intel手册,了解它们的编码方式。
According to Section 3.1.1.1,
/r-指示指令的ModR/M字节包含寄存器操作数与r/m操作数。
ModR/M字节在本手册的第2.1节中进行了解释。88898A8B8C等只是操作码字节,也在本手册的这一节中进行了解释。

相关问题