.text .globl main main: ori $9, $0, 0 # base register ori $10, $0, 0 # register dat char vasthoudt ori $11, $0, 0 # controle var ori $12, $0, 0 # controle var ori $13, $0, 0x20 # spatie ori $14, $0, 0x20 # 20 lager, wordt het hoofdletter lui $9, 0x1000 spatievreter: lbu $10, 0x00($9) # eerste character sll $0, $0, 0 beq $10, $0, finished # nul character, dus klaar... sll $0, $0, 0 sltiu $11, $10, 0x61 # als $10 kleiner is dan 61 is het true bne $11, $0, nextchar # naar volgende char kijken... sll $0, $0, 0 sltiu $12, $10, 0x7B # als $10 kleiner 0x7B dan is het true bne $11, $0, nextchar # naar volgende char kijken sll $0, $0, 0 # naar volgende char kijken, om te weten of het een spatie is... or $5, $0, $9 addiu $5, $5, 0x01 # wijst nu naar volgende byte. lbu $15, 0x00($5) sll $0, $0, 0 beq $15, $13, touppercase sll $0, $0, 0 # zo niet, dan naar volgende character... j nextchar sll $0, $0, 0 nextchar: addiu $9, $9, 0x01 # verhoog pointer j spatievreter sll $0, $0, 0 touppercase: sub $10, $10, $14 # - 20, zodat het hoofdletter wordt sb $10, 0x00($9) j nextchar sll $0, $0, 0 finished: sll $0, $0, 0 .data string: .asciiz "o t"