2010-04-19 51 views
4

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

+1

我已将您的问题标题中的“疑问”更改为“问题”。显然,有些语言对英文单词“疑问”和“问题”使用相同的单词。在这里,“问题”几乎总是你想要的。 – 2010-04-19 07:37:09

回答

8

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

+0

与重载函数类似吗? – IAbstract 2010-04-20 17:27:55

+0

为“相似”的一些定义......我想你可以这样说:) – Virgil 2010-04-22 10:20:56

1

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

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

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