Я хочу получить побайтно из массива .space , начиная с самого высокого индекса. У меня есть два массива .space , один для ввода текста пользователем, второй для хранения маленьких букв из входной строки. Есть проблема, когда я пытаюсь сохранить байт при смене раздела - sb $ t4, ($ t3) , кажется, не хранит правильный символ, или, что хуже, $ t4 не кажетсячтобы указывать на последний символ TMP больше. Есть ли лучший способ получить доступ к символам в строке с конца?
Мой код предназначен для обратного порядка маленьких букв во введенной строке,
здесь:
arr: .space 100
tmp: .space 100
che: .asciiz "check\n"
text1: .asciiz "input string: \n"
text2: .asciiz "Output:\n"
.text
.globl main
main:
li $v0,4
la $a0, text1
syscall
la $a0, arr
li $a1, 100
li $v0, 8
syscall
li $t0, 'a'
li $t1, 'z'
la $t3,arr
la $t4,tmp
read_begin:
lb $t5,($t3)
lb $t6,($t4)
beq $t5,$zero,ch
blt $t5,$t0,increment
bgt $t5,$t1,increment
sb $t5,($t4)
addi $t4,$t4,1
b increment
increment:
addi $t3,$t3,1
b read_begin
ch:
la $t3,arr
b change
change:
lb $t5,($t3)
beq $t5,$zero,end
blt $t5,$t0,increment2
bgt $t5,$t1,increment2
sb $t4,($t3)
addi $t4,$t4,-1
increment2:
addi $t3,$t3,1
b change
end:
li $v0,4
la $a0, text2
syscall
la $a0, arr
li $v0, 4
syscall
li $v0, 10
syscall