.globl __start __start: la $t0, str LOOP: lbu $t1, 0($t0) addi $t0, $t0, 0x1 beq $t1, $0, DONE slti $t2, $t1, 97 # < 'a' bne $t2, $0 LOOP slti $t2, $t1, 123 # 'z' + 1 beq $t2, $0, LOOP addi $t1, $t1, -32 j LOOP sb $t1,-1($t0) DONE: la $t0, str addi $t1, $0, 0 L2: lbu $t2, 0($t0) addi $t0, $t0, 1 bne $t2, $0, L2 add $t1, $t1, $t2 la $a0, s2 la $a1, str li $v0, 11 syscall nop li $v0, 10 syscall .data str: # .asciiz "ab" .asciiz "Hello, world!" s2: .asciiz "Str: %/a1/s Sum: %/t1/d\n"