そこで、MIPS に一種の toUpper 関数を実装しようとしています。この関数は、文字列の開始アドレスである $a0 と、文字列の長さである $a1 の 2 つの変数にアクセスできます。文字列をループして大文字に変換しようとしています。誰かが私が間違っている場所を知っていますか?
開始アドレスの最初の文字を実際に変数にロードするのに問題があると思います。
to_upper:
li $t0, 0 #initialize counter
li $t1, 0
Loop:
addi $t0, $t0, 1
sgt $t5, $t0, $a1
beqi $t5, 1, Done
slti $t5, $t1, 97
beqi $t5, 1, Loop
sgti $t5,$t1, 122
beqi $t5, 1, Loop
subi $t1, $t1, 32
j Loop
Done:
jr $ra