I am a beginner in MIPS and we're given this assignment to write a programs in MIPS to convert binary string to decimal
i do some research and I found some helpful information:
TO convert a binary number to decimal
Let X be a binary number, n digits in length, composed of bits Xn-1 ... Xo
Let D be a decimal number
Let i be a counter
1. Let D = 0
2. Let i = 0
3. While i < n do:
If Xi == 1 (i.e if bit i in X is 1), then set D = (D + 2 to the power of i)
Set i = (i + 1)
I am trying to write these in assembly language and really need help, here are what i have started, need help to guide me to finish this :( its very hard for me
.text
.align 2
main:
move $zero, $r3 # assume that $r3 = 0, represent a decimal num
addi $r4, $r4, 0 # i = 0, store in $r4
addi $r5, $r5, 8 #8 digits in length
li $v0, 4 #code for print string
la $a0, prompt #load address of prompt into $a0
syscall #print the prompt message
li $v0, 8 #code for read strings
la $a0, binary #addr of buffer (binary)
li $a1, 9 #size of buffer (1 byte)
syscall #
Loop: slt $r1, $r4, $r5 #while i < n
beg # am stuck here
convert:
.data
prompt: .asciiz "Insert Binary String: \n"
output: .asciiz "The decimal number is: "
I am stuck here:
If Xi == 1 (i.e if bit i in X is 1), then set D = (D + 2 to the power of i)
Set i = (i + 1)
How do i write the Xi( bit i in X) in mips and plus look at my code above please