Я пытаюсь проверить, введен ли введенный пользователем символ 0 для второго символа, например, если они вводят «A0123», тогда утверждение истинно. Мне удалось удалить знак равенства, однако, когда я запускаю свою программу, он не входит в ветвь, которая должна проверять, что второй символ равен 0.MIPS, если инструкция не указана
В регистре $ t2 я сохраняю точный ввод пользователей (с символом новой строки). и в $ s5 я сохраняю строку asciiz «0» с новой строкой. Затем я удаляю первый символ ввода пользователя.
Что происходит не так и как я могу это исправить?
.data
zero: .asciiz "0\n"
la $s5, zero
addiu $t2,$t2,1 #remove equals sign
beq $t2, $s5, zero2 #referencing 0
beq $t2, $s6, one2
j exit2
zero2:
move $t2, $t0
j exit2
Помните, что есть [слот задержки филиал ] (https://en.wikipedia.org/wiki/Delay_slot#Branch_delay_slots) в MIPS. Я не делал сборку MIPS через некоторое время, но может быть полезно поставить 'nop' после любой команды перехода. –