Я пытаюсь написать программу MIPS, которая будет принимать предопределенную строку и отображать регистр каждой буквы.Моими мыслями для достижения этой цели было бы вычесть или добавить 32 в зависимости от случая.
Кажется, мой цикл работает неправильно?Я пробовал несколько разных вещей, но было трудно определить, где я иду не так.
main:
jal displayString
li $v0, 4
la $a0, string
la $a1, newStr
li $t7, 0 #loop counter
jal changeCase
move $a1, $a0
jal displayString
#exit
li $v0, 10
syscall
displayString:
li $v0, 4
la $a0, string
syscall
jr $ra
changeCase:
loop:
#counter
beq $t7, 10, endloop #if $t7 = 10 then end
lbu $t1, 0($a0)
#beqz $t1, exit
#if less than 91, add 32
#if greater than 97, sub 32
slti $t0, $t1, 91
beq $t0, 0, else
addi $a1, $t1, 32
add $t6, $t7, 1 #add 1 to counter t7
move $t6, $t7
j endif
else:
subi $a1, $t1, 32
add $t6, $t7, 1 #add 1 to counter t7
move $t6, $t7
j loop
endif:
j loop
#exit:
#jr $ra
endloop:
jr $ra