# reverse.s .text .globl main main: la $t1,str # $t1 indice di sinistra move $t2,$t1 # $t2 indice di destra loop1: lbu $t0,($t2) # cerco la fine della stringa beqz $t0,loop2 # quando la raggiungo passo oltre addu $t2,$t2,1 j loop1 loop2: subu $t2,$t2,1 # tolgo 1 all'indice di destra bge $t1,$t2,end # se t1 >= t2 ho finito lbu $t3,($t1) # carico i due caratteri da scambiare lbu $t4,($t2) sb $t3,($t2) # e li scrivo scambiati di posto sb $t4,($t1) addu $t1,$t1,1 # aggiungo 1 all'indice di sinistra j loop2 end: jr $ra .data str: .asciiz "0123456789" # provare anche "assembly MIPS"