如何解决汇编语言中源和目标的正确顺序
我刚开始学习计算机组织和架构。 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&T 和 Intel 语法对相同的 ISA (x86) 使用相反的顺序。使用与您正在使用的实际汇编程序(软件)相匹配的顺序,用于您的目标机器。
无论哪种方式,都只是表示机器代码的语法,没有本质区别。
相关:
- How to determine if the registers are loaded right to left or vice versa
- x86-64 assembly order of operands
- What was the original reason for the design of AT&T assembly syntax?
- Questions about AT&T x86 Syntax design
这些操作数顺序问答大部分都集中在 x86 上,主要是因为有多种语法被广泛使用,而 gcc 和 GDB 等工具默认使用的语法与 Intel 手册中使用的语法相反。
在只有一种语法但目的地最后一个顺序的 ISA 上,如 M68K 和 PDP-11,这只是正常的,不会被谈论。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。