有人可以帮我弄清楚是什么原因导致我的程序显示尝试在0x00400140执行非指令,当我取消注释beqz行时。如果我保持它评论我的程序运行得很好,但就像我取消注释它它在随机时间显示错误(即有时在5秒后,有时在10秒后,等)。 (该程序基本上是一个计时器,我使用beqz只能每秒打印一次)
非常感谢任何帮助!
主:
addi $t0, $zero, 60 # stores 60 in $t0
div $s0, $t0 # divides total time by 60
mflo $s1 # stores minutes in $s1
mfhi $s2 # stores seconds in $s2
#beqz $s4, skip
#nop
move $s3, $ra # stores $ra in $s3
move $a0, $s1 # stores minute value in $a0
jal printToAscii # calls function to print minute
la $a0, colon # loads colon address in $a0
jal printColon # calls function to print colon
move $a0, $s2 # stores second value in $a0
jal printToAscii # calls function to print second
jal EraseLine
move $ra, $s3 # restores $ra
addi $s4, $zero, 0
跳过:
j main
nop
答案 0 :(得分:0)
找到解决方案,我的异常处理程序一直跳过该行,因此j主线被跳过。