【问题标题】:sparc assembly - add instruction with i=0 or i=1sparc 程序集 - 添加 i=0 或 i=1 的指令
【发布时间】:2017-06-22 02:05:13
【问题描述】:

来自Sparc architecture manual,第110页Add指令:

“如果 i = 0,ADD 和 ADDcc 计算“R[rs1] + R[rs2]”。如果 i = 1,它们计算 “R[rs1] + sign_ext(simm13)”。无论哪种情况,总和都会写入 R[rd]。”

阅读程序集时,我如何知道是 i=0 还是 i=1 ?反汇编代码中的助记符/操作码看起来没有任何变化。

【问题讨论】:

    标签: assembly add sparc


    【解决方案1】:

    “i”表示指令中的“立即”值。立即数是常数。所以你会看到这样的东西:

    add %g1, 59, %g1
    

    这意味着“将常数 59 添加到 g1 并将结果放入 g1”。

    当i=0时,表示参数不是立即数。所以这是一个寄存器!你会在汇编或反汇编中看到这个:

    add %g1, %o3, %g1
    

    这意味着添加寄存器 g1 和 o3 并将结果放入 o3。

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2015-08-04
      • 2016-07-20
      • 2012-01-13
      • 1970-01-01
      相关资源
      最近更新 更多