0

宿題の場合、整数を取り、それを文字列表現に変更するとします。MIPS の基本的な理解はしていますが、コードが機能しない理由がよくわかりません。私が何をする必要があるか、または手から文字列を作成する方法を手伝ってくれる人がいるかどうか疑問に思っています。MARS Simulator 4.2 を使用しています。

これまでのところ、コメント付きの私のコードです。

#itoa
#$t0 = initial integer
#$t1 = place where string is stored
#This program I'm attempting to by hand create a null ended string from an original integer 2.


li $t0, 2              #load integer 2
la $t1, number         #load memory location for string


addi $t0, $t0, 48       #add 48 to 2 to get ASCII character, 50
sb $t0, ($t1)           #store it in original byte of $t1


add $t1, $t1, 1     #increment $t1, to point to next byte
sb $zero, ($t1)     #store #zero in the next byte

move $a0, $t1           #move the hopefully finished string to print out
li $v0, 1
syscall               #print out string


#exit program
li $v0, 10
syscall

.data
 number: .space 1024

私は基本的に、2 を ASCII 値に変更し、0 を追加してヌル文字列の終わりを表し、その文字列を出力しようとしています。

助けてくれてありがとう。

4

2 に答える 2

2

の値を変更した$t1ため、文字列の先頭を指しなくなりました。上書きする前に、アドレスをリロードするか、別のレジスタにコピーを作成する必要があります$t1

于 2013-03-14T21:36:17.423 に答える