2

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

AND AX, [memoryaddress] 和 AND AX, memoryaddress

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

00 01 1101001

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

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

4

1 回答 1

1

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

于 2012-06-02T21:17:15.480 回答