我想從用戶輸入的數字倒數,並希望顯示數字和0之間的所有整數。我的輸出我相信去然後它在1處進入無限循環。它似乎永遠不會變爲零。MIPS-彙編數量下降,但進入無限循環
我剛開始學習大會,所以如果這是一個糟糕的問題,我會提前道歉。
感謝
這裏是我的代碼:
.globl main
.data
msg: .asciiz "Input a number: "
x: .word 1
.text
main:
li $v0,4 # display the first message
la $a0, msg
syscall
li $v0, 5 # call for an input read, stores in $v0
syscall
move $t0, $v0 # move the input to a temporary register
lw $t1, x # loads x into $t1 registers
# Show Output
doLoop:
sub $v0, $t0, $t1 # subtracts 1 from given input stores in $v0
move $s0, $v0
li $v0, 1 # Prepares to print integer
move $a0, $v0
syscall
bgt $a0, 0, doLoop
li $v0,10 # load the "exit" number into register $v0
syscall
谷歌「mips調試」,並扔在你使用的模擬器(MARS或SPIM?)。然後注意自己,寄存器中的值是如何演變的,以及爲什麼你的循環測試不起作用。 – Ped7g
我正在使用MARS,謝謝! – C2H50H