1

仮想マシンで 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 '

私は何を間違っていますか?これらのエラーが発生するのはなぜですか?

4

1 に答える 1

0

あなたの質問に対する回答が得られたので、ここに投稿して、同じ問題を抱えてここに来る人に役立つようにすることをお勧めします.

私はあなたのためにここに答えを投稿しています。

問題は行方不明だった"# include <mips/regdef.h>"

于 2012-12-06T06:56:40.143 に答える