我正在读https://www.felixcloutier.com/x86/mov(mov为例),在88 /r
和REX + 88 /r
甚至REX.W + 8C /r
等表中有这些操作码。我在网站上找不到解释。r
、REX
、REX.W
和8C
是什么意思?我如何根据此表得出整个mov指令的十六进制值?
我正在读https://www.felixcloutier.com/x86/mov(mov为例),在88 /r
和REX + 88 /r
甚至REX.W + 8C /r
等表中有这些操作码。我在网站上找不到解释。r
、REX
、REX.W
和8C
是什么意思?我如何根据此表得出整个mov指令的十六进制值?
1条答案
按热度按时间watbbzwu1#
Intel® 64 and IA-32 Architectures Developer's Manual: Vol. 2A第2.2.1节给出了您问题的答案。
REX前缀是在64位模式下使用的指令前缀字节。它们执行以下操作:
Particularities are given in Section 2.2.1.2:
请进一步参阅Intel手册,了解它们的编码方式。
According to Section 3.1.1.1,
/r-指示指令的ModR/M字节包含寄存器操作数与r/m操作数。
ModR/M字节在本手册的第2.1节中进行了解释。
88
、89
、8A
、8B
、8C
等只是操作码字节,也在本手册的这一节中进行了解释。