MIPS无法识别NULL

时间:2017-01-03 17:58:30

标签: string null iteration mips

请原谅我这个问题的容易程度,但我是MIPS的新手并且遇到了一个奇怪的错误:

.data

myString: .asciiz "P5"


.text


li $v0 4

la $a0, myString
newLoop:
    syscall
    addi $a0, $a0, 1
    beq $a0, $zero, done

    j newLoop

done:
    li $v0, 10
    syscall

我的程序永远不会终止,尽管在myString的末尾有一个空字符(因为我从其他帖子收集,相当于$ 0)。我原以为$ a0会指向“P”,然后是“5”,然后是“\ 0”,然后跳转到完成并终止。

谢谢你的眼睛!

1 个答案:

答案 0 :(得分:1)

您与零比较的是地址,而不是该地址的值。你需要这样的东西:

lbu $t0,($a0)       # load the byte pointed to by $a0
beq $t0,$zero,done