【问题标题】:What is the difference between these instructions这些指令有什么区别
【发布时间】:2018-08-25 02:38:57
【问题描述】:

这些指令有什么区别:

-Add   (R0), R3
-Add    R0, (R3)

为什么()的位置变了?

【问题讨论】:

  • 这是程序集吗?您可能希望在标签中添加特定架构。
  • 您没有告诉我们这是用于什么处理器架构,但通常在寄存器周围的括号表示该寄存器包含一个内存地址,并且该操作数将从该地址检索数据以完成指令。 Add (R0), R3 可能是“将寄存器 R3 的内容添加到 R0 指向的内存地址,并将结果存储到 R0 指向的内存地址”。 .Add R0, (R3) 可能是“将寄存器 R3 指向的内容相加,并将它们添加到寄存器 R0,并将结果存储在寄存器 R0 中”。我在猜测语法,哪一边是 src 和哪边。
  • - 开头的Add 助记符是什么意思?这是说明的一部分,还是要点?

标签: assembly instructions


【解决方案1】:

你没有指明处理器架构,这会产生很大的不同。

也就是说,您的问题可以通过阅读您的汇编程序文档来轻松回答。根据我使用过的所有其他汇编器的工作方式,我的期望是以下之一:

  1. 它们没有区别;括号没有实际影响。

  2. 括号的使用很像方括号,通常在汇编程序中用于将寄存器取消引用到内存地址(也称为间接寻址)。这意味着一条指令取消引用 R0,而另一条取消引用 R3。

您应该能够通过在内存中组装这段代码并在观察寄存器值的同时单步执行它来确定是哪种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-22
    • 2020-06-28
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多