【问题标题】:Correct order of source and destination in Assembly language汇编语言中源和目标的正确顺序
【发布时间】:2021-08-08 08:24:47
【问题描述】:

我刚开始学习计算机组织和架构。卡尔·哈马赫 (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 版中,表示与第二种方法相同的操作(也有许多网站更喜欢第二种方法)。

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

【问题讨论】:

    标签: assembly instruction-set instructions


    【解决方案1】:

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

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

    相关:

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

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

    【讨论】:

    • 所以我不应该担心这个订单。对吗?
    • @ACA:哦,您是专门询问 x86 程序集的吗?如果你这么说,这可能只是作为副本关闭,而不是花时间写一个关于跨不同架构的一般汇编的答案。
    • 没有。我没有具体问什么。我是第一次学习汇编。我只想知道是否有一些我应该知道的约定(因为我看到了同一作者的两个版本的说明)。感谢您的澄清。
    • @ACA:好的,那很好。我很惊讶 x86 示例对一般情况有这么大的帮助,但很高兴它确实如此。你没有说这本书在谈论什么(如果有的话)真实世界的指令集。
    猜你喜欢
    • 2010-12-24
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-29
    • 2012-01-19
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多