したがって、最初の文字が数字以外の数字で、残りが数字の文字列をユーザーから受け取るコードを記述しました。私のコードは、最初の文字を削除し、残りの数値を変数に格納します。残りの数字に定数(例5)を加えて印刷してみようとしています。何がうまくいかないのか分かりません。MIPSは、そのアドレスの値の代わりにアドレスを出力します。
.data
string: .asciiz "Enter a string:\n"
string1: .asciiz "The value +5 is:\n"
inputString: .space 20
outInt: .word 0
int5: .word 5
addedInt: .word 0
.text
main:
#print initial string to console insruction 4
li $v0, 4
la $a0, string
syscall
#get first string from user
li $v0, 8
la $a0, inputString
li $a1, 8 #a1 contains max length of string to be entered
la $t0, ($a0)
syscall
addiu $t0, $t0, 1 #remove first letter
li $v0, 4 #prints out remaining numbers without leading character
la $a0, ($t0)
syscall
sw $a0, outInt #store new word in outInt
lw $t0, outInt #print out outInt to check if its correct
la $a0, ($t0)
syscall
lw $t1, int5
add $t2, $t0, $t1 #add 5 to the remaining numbers
sw $t2, addedInt #store result
li $v0, 4
la $a0, string1 #print the value + 5 string
syscall
li $v0, 1 #output a number (not a string)
lw $a0, addedInt
syscall
jr $ra
私は、文字列を入力し、出力 "X123" は次のとおりです。
は、文字列を入力します。
X123
値を+5 :
あなたのコードは何
出力は何ですか?その理由は何ですか? –
出力は128でなければなりません(123 + 5 = 128であるため)。それは割り当てのためです。 –
デバッガを使用してコードをシングルステップ実行すると、レジスタには何が表示されますか? –