汇编语言中源和目标的正确顺序

问题描述

我刚开始学习计算机组织和架构。 Carl Hamacher、Zaki 的计算机组织……是我的参考教科书。目前,我正在学习将两个数字 A 和 B 相加并将结果存储在 C 中的基本汇编指令。表示此基本操作的正确方法是什么;

Add A,B,C 操作源 1、源 2、目标

(Carl Hamacher 第 5 版 ISBN:7-111-10346-7 第 37 页第 2.4.3 节计算机组织)

Add C,A,B 操作目标、来源 1、来源 2

(第 32 页第 2.3 节计算机组织和嵌入式系统作者 Carl Hamacher 第 6 版 ISBN 978–0–07–338065–0)

我知道这是一个愚蠢的问题,但它确实让我感到困惑。第一种方法是我在我的参考书第 5 版中看到的。但是在第 6 版中,相同的操作表示与第二种方法相同(也有很多网站更喜欢第二种方法)。

这个“顺序”有什么意义吗?

解决方法

不同的汇编器使用不同的语法。例如AT&TIntel 语法对相同的 ISA (x86) 使用相反的顺序。使用与您正在使用的实际汇编程序(软件)相匹配的顺序,用于您的目标机器。

无论哪种方式,都只是表示机器代码的语法,没有本质区别。

相关:

这些操作数顺序问答大部分都集中在 x86 上,主要是因为有多种语法被广泛使用,而 gcc 和 GDB 等工具默认使用的语法与 Intel 手册中使用的语法相反。

在只有一种语法但目的地最后一个顺序的 ISA 上,如 M68K 和 PDP-11,这只是正常的,不会被谈论。