Как мне преобразовать строку в .data в верхний или нижний регистр в MIPS - PullRequest
0 голосов
/ 09 ноября 2019

Как преобразовать строку в MIPS в верхний или нижний регистр?

Поэтому я пытаюсь оптимизировать мой код MIPS. Прямо сейчас мой код работает путем подсчета количества букв в верхнем и нижнем регистре и, наконец, добавляет общее количество вхождений.

Так как мне нужно пройти через двойные циклы, чтобы найти вхождения. Я действительно хочу сначала изменить строку на верхний или нижний регистр, чтобы мне не приходилось повторять цикл дважды.

.data str: .asciiz "Перевести это в нижнее значение"

.text // загружает здесь строку и // проходит через циклы

1 Ответ

0 голосов
/ 13 ноября 2019
la $t0, str 

цикл: фунт $ t1,0 ($ t0)

beqz $t1,exit_loop## if $t1=0, exit

blt $t1,'a',no_change ## $t1 < a,next

bgt $t1,'z',no_change ## $t1 > z,next

addiu $t1,$t1,-32 ## convert to uppercase: 'A'-'a'=-32

sb $t1,0($t0)

no_change: addiu $ t0, $ t0,1 ## указатель приращения, i ++

j loop

exit_loop:

...