loop:
lb $t0 0($a0)
beqz $t0 done
bne $t0 $a1 continue
sb $a2 0($a0)
continue:
addi $a0 $a0 1
j loop
분기 왜 아직도 문 bne $t0 $a1 continue
내가 xspim
에서 확인하고 그들이 동일한 경우에도 분기합니다.MIPS 조건문 BNE는 항상이 루프 그냥 문자열을 통해 것입니다
기본적으로 프로그램은 $t0 == $a1
일 때 분기하지 않아야합니다. $a1
은 ' '
문자이며, sb $a2 0($a0)
문으로 이동해야합니다. 따라서 xpsim
에서 실행하고 $t0 = 20
(16 진수이므로 ASCII 코드는 ' '
) 일 때 ' '
인 $a0
과 같아야합니다.
따라서 continue 문으로 분기하여 그 아래의 문을 실행하면 안됩니다. 나는 추측이 정확하지 않다고 생각한다.
나는 그것을 얻지 못한다, 나의 프로그램은 너의 것과 너무 비슷하지만, 공간을 채우지 않을 것이다! 이상한. xspim에서 "sb $ a2, 0 ($ a0)"위로 뛰어 넘을 때 참조하십시오. 그래서 이것이 공백이 채워지지 않는 이유라고 생각했습니다. 나는 다른 오류를 둘러 볼 것입니다. 그러나 당신의 것과 얼마나 비슷한 지 매우 이상합니다. 그래도 감사합니다! –
나는 그것을 발견했다! 마침내! –