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