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