将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 
+0

哪个部位有问题?到目前为止你做了什么? –

+2

您是否在寻找MIPS的C编译器? –

+0

我是MIPS编程新手,仍然不知道所有的寄存器等。我只是不知道如何逐行写入并将其写入MIPS。 – ellio20

让自己能够产生MIPS输出,如gcc,然后用选项“生成汇编输出”编译代码的编译器。 gcc -S可以为你做这个。

然后拿这个代码,并检查/使用它。如果你想理解它,你可能想要确保优化是在一个较低的水平(例如与-O0)。否则,您很可能无法理解编译器生成的内容。