有关英特尔IA-32软件开发人员手册的问题

时间:2010-04-19 06:42:33

标签: assembly x86 intel ia-32

我正在研究英特尔的IA-32软件开发人员手册。特别是,我正在阅读以下手册:http://www.intel.com/Assets/PDF/manual/253666.pdf。我们以ADD指令为例。在第79页上写入,您可以将r8(8位寄存器)添加到r / m8(8位寄存器或存储单元)。在下面的几行中,还写入了可以将r / m8添加到r8。问题是:如果我添加两个8位寄存器,我正在使用哪条指令?感谢。

2 个答案:

答案 0 :(得分:8)

add指令有多个版本......相同的助记符可以编码为不同的操作码,具体取决于您使用的操作数。 (并回答你的具体问题:“添加r8,r8”指令可能有2种不同的可能编码,它们做同样的事情)

答案 1 :(得分:1)

ADD指令有9种不同的编码类型,并且保留了两个操作码:

Opcode: 00/r = ADD r/m8, r8
Opcode: 02/r = ADD r8, r/m8

如果“ADD r8,r8”都有效果。