# :Example: # # Program to convert a C-style string to upper case. .data str: .asciiz "Hello, world!" before: .asciiz "Before: %/s1/s\n" after: .asciiz "After: %/s1/s\n" .text .globl __start __start: la $s1, str la $a0, before addi $v0, $0, 11 syscall jal upper add $a0, $s1, $0 la $a0, after addi $v0, $0, 11 syscall li $v0, 10 syscall upper: ## Register Usage # # $a0: (Call) Address of string to convert. # # Note: 'a' = 97, 'z' = 122, 'A' = 65. LOOP: lbu $t0, 0($a0) addi $a0, $a0, 1 beq $t0, $0, DONE addi $t1, $t0, -97 bltz $t1, LOOP addi $t1, $t0, -122 bgez $t1, LOOP addi $t0, $t0, -32 j LOOP sb $t0, -1($a0) DONE: jr $ra nop ####