-1

快速提问。我希望将此 C 代码翻译成 MIPS 汇编语言:f=gA[B[4]] 我可以使用任何寄存器来放置变量,所以我使用了以下代码:$s1=f, $s2=g, $s3 =A, $s4=B, $t0=B[4], $t1=A[B[4]]

这是我到目前为止尝试过的代码,但我不确定它是否正确:

lw $t0, 16($s4)
add $t0, $t0, $s3
lw $t1, 0($t0)
sub $s1, $s2, $t1

你们能帮我编辑这个吗?先感谢您。

4

2 回答 2

1

看起来您没有按元素A大小缩放索引。A您可能想$t0在添加之前乘以 4 $s3

于 2013-11-04T01:42:45.810 回答
1

如果您有一些 C 代码,您可以使用 gcc 将其编译为程序集

gcc-mipsel-linux-gnu -save-temps program.c
cat program.S

这假设您安装了 mipsel [cross-]compiler,从

http://www.emdebian.org/crosstools.html

或者

https://wiki.debian.org/BuildingCrossCompilers

于 2013-11-03T23:29:15.443 回答