我正在尝试编写一个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