Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #1
- .data
- Hex: .space 100
- .text
- main:
- la $a0 , Hex
- addi $a1 , $zero , 100
- li $v0 , 8
- syscall
- addi $a0 , $a0 , 2
- add $a1 , $a0 , $zero
- addi $t4 , $zero , 1 # Contador errores.
- add $t2 , $zero ,0 # Contador
- jal funcion
- add $a0 , $v0 ,$zero
- li $v0 , 10
- syscall
- funcion:
- lb $t0 , 0($a0)
- beq $t0 , 10 , finalizaOK
- bgt $t4 , 8 , ErrorCadenaLarga
- blt $t0 , 48 , error1
- bgt $t0 , 57 , compruebaLetras
- addi $a0 , $a0 , 1
- addi $t4 , $t4 , 1
- j funcion
- error1:
- addi $a0 , $a0 , 1
- addi $t4 , $t4 , 1
- bne $v1 , 0 , funcion
- addi $v1 , $zero , 1
- add $a0 , $a1 , $zero
- j transforma
- compruebaLetras:
- blt $t0 , 65 , error1
- bgt $t0 , 70 , error1
- addi $t4 , $t4 , 1
- addi $a0 , $a0 , 1
- j funcion
- ErrorCadenaLarga:
- addi $v1 , $zero , 2
- add $a0 , $a1 , $zero
- j transforma
- finalizaOK:
- addi $v1 , $zero , 0
- add $a0 , $a1 , $zero
- j transforma
- transforma:
- lb $t1 , 0($a0)
- bgt $t1 , 57 , letras # > digito 9 --> letras
- sub $t1 , $t1 , 48 # Para obtener su valor en decimal
- add $t3 , $t3 , $t1
- addi $a0 , $a0 , 1
- addi $t2 , $t2 , 1
- beq $t2 , 8 , termina
- sll $t3 , $t3 , 4
- j transforma
- letras:
- sub $t1, $t1, 55
- add $t3 , $t3 , $t1
- addi $a0 , $a0 , 1
- addi $t2 , $t2 , 1
- beq $t2 , 8 , termina
- sll $t3 , $t3 , 4
- j transforma
- termina:
- add $v0 , $t3 , $zero
- jr $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement