4

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

4

2 回答 2

8

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

于 2010-04-19T06:45:01.560 回答
1

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

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

如果 "ADD r8, r8" 两者都有一些效果。

于 2010-04-19T07:22:08.307 回答