kwins -1

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
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

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.