我正在尝试在虚拟机中编译MIPS32代码。程序的其余部分是用C代码完成的。下面是有问题的代码:
"# include "ordenamiento.h"
"# a0 is the pointer to char **, a1 is the start (int), a2 is the end (int)
.overall stoogeSort
.Set noreorder
.cpload $t9
.September reorder
.cprestore
.ent stoogeSort
"#arming the stack
stoogeSort:
addiu $ sp, -32
sw $ fp, 28 ($ sp)
$ sw gp, 24 ($ sp)
move $ fp, $ sp
sw $ a0, 32 ($ sp)
sw $ a1, 36 ($ sp)
sw $ a2, 40 ($ sp)
b CMP
FinComp: bgt $ t0, $ zero, noswap
Swap: addu $ t2, $ a0, $ a1
----
----
----
. stoogeSort end问题是,在按如下方式编译时,gcc-c-O0 stoogeSort.S给了我以下错误:
stooge.s: 1: Warning: line numbers must be positive, line number 0 rejected
stooge.s: 9: Error: illegal operands `sw $ a0, 32 ($ sp) '
stooge.s: 10: Error: illegal operands `sw $ a1, 36 ($ sp) '
stooge.s: 11: Error: illegal operands `sw $ a2, 40 ($ sp) '
stooge.s: 12: Error: unrecognized opcode `ba CMP '
stooge.s: 13: Error: illegal operands `bgt $ t0, $ zero, noswap '
stooge.s: 14: Error: illegal operands `addu $ t2, $ a0, $ a1 '
stooge.s: 15: Error: illegal operands `addu $ t3, $ a0, $ a2 '我做错了什么?为什么会出现这些错误?
发布于 2012-12-06 14:56:40
既然你已经得到了你的问题的答案,最好把它张贴在这里,这样对那些带着同样问题来这里的人会很有帮助。
我在这里为你张贴答案。
问题是缺少 "# include <mips/regdef.h>"
https://stackoverflow.com/questions/13038870
复制相似问题