将C代码转换为MIPS汇编
问题描述:
这是我一直在编写的程序的一部分,无法编写此代码的查找函数部分。这里是C语言的代码,但是很难将其转换为MIPS。任何帮助,将不胜感激。将C代码转换为MIPS汇编
Pseudo codes:
$a0 = 0 # index into symTab array
compare:
if ($a0 >= symAV($0))
goto not_found
if (TOKEN[0] <> symTab[$a0])
goto nextSym
if (TOKEN[1] <> symTab+4[$a0])
goto nextSym
return # found the symbol
nextSym:
$t0++ # should be incremented by 16 in MIPS
goto compare
not_found:
$a0 = -1
return
答
让自己能够产生MIPS输出,如gcc
,然后用选项“生成汇编输出”编译代码的编译器。 gcc -S
可以为你做这个。
然后拿这个代码,并检查/使用它。如果你想理解它,你可能想要确保优化是在一个较低的水平(例如与-O0
)。否则,您很可能无法理解编译器生成的内容。
哪个部位有问题?到目前为止你做了什么? –
您是否在寻找MIPS的C编译器? –
我是MIPS编程新手,仍然不知道所有的寄存器等。我只是不知道如何逐行写入并将其写入MIPS。 – ellio20