7

我正在学习计算机体系结构的大学课程,所以我是汇编语言的新手。我的问题是,如何在不使用伪指令的情况下将以下代码从 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 作为第三行中地址内存的偏移量。提前致谢。

4

1 回答 1

12

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

sub $t0, $s3, $s4
sll $t0, $t0, 2
add $t0, $t0, $s6
lw  $t1, 0($t0)
sw  $t1, 32($s7)
于 2013-10-12T00:32:48.917 回答