Advertisement
EXTREMEXPLOIT

Chars Changer

Feb 5th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .data
  2. Frase: .asciiz "HELLO UNIVERSE, hello universo, Hello Universe"
  3. .globl main
  4. .text
  5. main:   li $t0, 0 # i
  6.     la $t9, Frase # $t9=@Frase
  7.     li $t3, 46 # Número de carácteres que tiene 'Frase'.
  8.     li $s4,'A'
  9.     li $s5,'Z'
  10.     li $s6,'a'
  11.     li $s7,'z'
  12.    
  13. bucle:  bge $t0, $t3, fibucle # i<46?
  14.     addu $s0, $t9, $t0 #$ s0 = @Frase+1
  15.     lb $t2, 0($s0) # $t2=Frase[i]
  16.    
  17.     bge $t2, $s4, confirmUpper #El carácter es mayor o igual que A, no es un espacio en blanco ni una coma.
  18.    
  19.     li $v0,11 #Impresión de un espacio o una coma.
  20.     addu $a0, $zero, $t2
  21.     syscall
  22.     #Volvemos al inicio del bucle
  23.     addiu $t0, $t0, 1 # i++
  24.     b bucle
  25.            
  26.     confirmUpper: ble $t2, $s5, isUpper #Si es mayor o igual que la 'A' y meno o igual a la 'Z', será mayúscula.
  27.     #Si no va a isUpper, entonces es minúscula.
  28.     isLower: subiu $t2, $t2, 32 #Añadimos 32 a la letra, para que sea mayúscula.
  29.     li $v0, 11 #Impresión de la letra cambiada.
  30.     addu $a0, $zero, $t2
  31.     syscall
  32.     #Volvemos al inicio del bucle
  33.     addiu $t0, $t0, 1 # i++
  34.     b bucle
  35.        
  36.     isUpper: addiu $t2, $t2, 32 #Restamos 32 a la letra, para que sea minúscula.
  37.     li $v0, 11 #Impresión de la letra cambiada.
  38.     addu $a0, $zero, $t2
  39.     syscall
  40.     #Volvemos al inicio del bucle
  41.     addiu $t0, $t0, 1 # i++
  42.     b bucle
  43.    
  44.    
  45. fibucle:jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement