Похоже, вы пытаетесь обработать случай, когда это строчная буква, что хорошо - однако вам также нужно обрабатывать верхний регистр - довольно похожая логика, как у вас, за исключением прописных и строчных букв.
Использование существующих и добавление минимальных изменений:
loop:
lb $t1, str($t0)
beq $t1, 0, exit # go to exit if $t1=0
blt $t1, 'a', not_l_case # go to case if $t1>a
bgt $t1, 'z', not_l_case # go to case if $t1<z
sub $t1, $t1, 32 # subtract 32 and save in $t1
sb $t1, str($t0)
j next_char
not_l_case:
blt $t1, 'A', not_u_case # go to case if $t1>A
bgt $t1, 'Z', not_u_case # go to case if $t1<Z
add $t1, $t1, 32 # add32 and save in $t1
sb $t1, str($t0)
not_u_case:
next_char:
addi $t0, $t0, 1
j loop
Существует ряд других способов, которые могут быть реализованы, которые могут обеспечить меньше кода.