8086汇编ADD寻址模式

时间:2012-06-02 21:12:17

标签: assembly add x86-16 opcode addressing-mode

您好我正在为8086编写汇编代码,但我想知道CPU如何区分例如

AND AX,[memoryaddress] 和 AND AX,memoryaddress

我们在它周围加上[]表示它应该被那个地址内容替换,但是CPU会看到像这样的指令

00 01 1101001

如何知道是否应该添加值1101001或地址1101001的内容。

我在考虑有多个ADD命令,它们的操作码与(ADDTHECONTENTS和ADDTHEVALUE)不同,但a86允许我们只说ADD,因为我们可以很容易地将语义与[]语法区分开来。这似乎是合乎逻辑的,但我不确定,所以我想问一下,如果对应不同寻址模式的指令有很多操作码。

1 个答案:

答案 0 :(得分:1)

区别在于opcode。有多个ADD操作码(数值为0,1,2,3,4,5),它们与参数的长度,以及它们对参数的作用完全不同。