将C代码转换为MIPS汇编

时间:2011-11-02 18:01:59

标签: 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

1 个答案:

答案 0 :(得分:3)

让自己成为能够生成MIPS输出的编译器,例如gcc,然后使用“生成程序集输出”选项编译代码。 gcc -S可以为您做到这一点。

然后获取该代码并检查/使用它。如果您想了解它,您可能希望确保优化处于较低级别(例如使用-O0)。否则,您很可能无法理解编译器生成的内容。