【问题标题】:Translating single C line to MIPS Assembly将单个 C 行转换为 MIPS 汇编
【发布时间】:2013-10-20 04:22:20
【问题描述】:

我正在学习计算机体系结构的大学课程,所以我是汇编语言的新手。我的问题是,如何在不使用伪指令的情况下将以下代码从 C 语言转换为 MIPS 汇编语言?

B [8] = A [i-j]

i 和 j 分配给寄存器 $s3 和 $s4,A 和 B 的基地址在寄存器 $s6 和 $s7 中。到目前为止,我有:

sub $t0, $s3, $s4
sll $t0, $t0, 2
lw $t1, $t0($s6)   #Is this line allright?
add $s5, $t1, $zero
sw $s5, 32($s7)

我不确定在第三行中使用寄存器 $t0 作为地址内存的偏移量。提前致谢。

【问题讨论】:

    标签: c assembly mips


    【解决方案1】:

    没有。而是通过将 $t0 添加到 $s6 来计算所需的地址。

    sub $t0, $s3, $s4
    sll $t0, $t0, 2
    add $t0, $t0, $s6
    lw  $t1, 0($t0)
    sw  $t1, 32($s7)
    

    【讨论】:

    • 非常感谢。这太有帮助了!
    • 很高兴听到并欢迎来到 SO。如果我的帖子对您​​有帮助,那么 SO 习惯上会接受并支持答案。
    • 好的,已经接受,但由于我的声誉低而无法投票。
    猜你喜欢
    • 2021-08-22
    • 2014-09-01
    • 2019-08-03
    • 2013-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    相关资源
    最近更新 更多