Advertisement
Guest User

tupu

a guest
Oct 19th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #1
  2. .data
  3. Hex: .space 100
  4. .text
  5. main:
  6. la $a0 , Hex
  7. addi $a1 , $zero , 100
  8. li $v0 , 8
  9. syscall
  10.  
  11. addi $a0 , $a0 , 2
  12. add $a1 , $a0 , $zero
  13. addi $t4 , $zero , 1 # Contador errores.
  14. add $t2 , $zero ,0 # Contador
  15.  
  16. jal funcion
  17.  
  18. add $a0 , $v0 ,$zero
  19.  
  20. li $v0 , 10
  21. syscall
  22.  
  23. funcion:
  24. lb $t0 , 0($a0)
  25. beq $t0 , 10 , finalizaOK
  26. bgt $t4 , 8 , ErrorCadenaLarga
  27. blt $t0 , 48 , error1
  28. bgt $t0 , 57 , compruebaLetras
  29.  
  30. addi $a0 , $a0 , 1
  31. addi $t4 , $t4 , 1
  32. j funcion
  33.  
  34. error1:
  35. addi $a0 , $a0 , 1
  36. addi $t4 , $t4 , 1
  37. bne $v1 , 0 , funcion
  38. addi $v1 , $zero , 1
  39. add $a0 , $a1 , $zero
  40. j transforma
  41.  
  42. compruebaLetras:
  43. blt $t0 , 65 , error1
  44. bgt $t0 , 70 , error1
  45. addi $t4 , $t4 , 1
  46. addi $a0 , $a0 , 1
  47. j funcion
  48.  
  49. ErrorCadenaLarga:
  50. addi $v1 , $zero , 2
  51. add $a0 , $a1 , $zero
  52. j transforma
  53.  
  54. finalizaOK:
  55. addi $v1 , $zero , 0
  56. add $a0 , $a1 , $zero
  57. j transforma
  58.  
  59. transforma:
  60. lb $t1 , 0($a0)
  61. bgt $t1 , 57 , letras # > digito 9 --> letras
  62.  
  63. sub $t1 , $t1 , 48 # Para obtener su valor en decimal
  64.  
  65. add $t3 , $t3 , $t1
  66. addi $a0 , $a0 , 1
  67. addi $t2 , $t2 , 1
  68.  
  69. beq $t2 , 8 , termina
  70.  
  71. sll $t3 , $t3 , 4
  72. j transforma
  73. letras:
  74. sub $t1, $t1, 55
  75.  
  76. add $t3 , $t3 , $t1
  77. addi $a0 , $a0 , 1
  78. addi $t2 , $t2 , 1
  79.  
  80. beq $t2 , 8 , termina
  81.  
  82. sll $t3 , $t3 , 4
  83. j transforma
  84. termina:
  85. add $v0 , $t3 , $zero
  86.  
  87. jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement