hi guys:
I just need help in how the srl instruction works in my program. I would like to know the interpretation. Like if I input de decimal number 8, which is 1000 in binary. I would like to know how it works.
this is the code, it converts decimal to hexadecimal numbers:
main:
la $a0, en # query user to enter a decimal number
li $v0, 4
syscall
li $v0, 5 # read in integer
syscall
add $v1, $v0, $zero
addi $s1, $zero, 28
Compute: add $t0, $zero, $v1 # move the decimal to a temp register
srl $s2, $t0, $s1
andi $s2, $s2, 15
addi $s1, $s1, -4
slti $t3, $s2, 10
bne $t3, $zero, L1 # $t3<10, branch to L1
addi $a0, $s2, 55 # add 55 to gain ascii value of the letter
PRINT: la $v0, 11 #print the ascii value
syscall
#We need to loop through the rest of the bits until we have read through entire number
slt $t4, $s1, $zero
beq $t4, $zero, Compute
j EXIT
L1: addi $a0, $s2, 48
j PRINT
EXIT: li $v0, 10
syscall # end the program