so i'm learning MIPS right now and i think i get the hang of things, mind you it's all relatively easy (so i've been told), but i can't seem to get around this one problem. i was given a C++ fragment and need to convert (translate) it directly to MIPS.

and that equation is array[a+b] = array[a-b]+d

intially i thought, this would be the same as array[a]+array = array[a+b]...and of course i was wrong.

though wrong, i'd still like to post what i do have....and if someone can correct me and guide me to the right direction, that'll be great!

add	$t1, $s0, $s0		# $t1 = 2*a
add	$t1, $t1, $t1		# $t1 = 4*a
add	$t2, $s1, $s1		# $t1 = 2*b
add	$t2, $t2, $t2		# $t1 = 4*b
sub 	$t3, $t1, $t2		# $t3 = A[a] – A[b] (or A[a-b]
add	$t3, $t3, $t0		# $t3 = address of A[a-b]
lw	$t3, 0($t0)		# $t3 = A[c-b]
add	$t4, $t3, $s2		# $t4 = A[a-b] + d
add	$t5, $t1, $t2		# $t5 = A[a] + A[b]
add	$t5, $t5, $t0		# $t5 = address of A[a+b]
lw	$t5, 0($t0)		# $t5 = A[a+b]
sw	$t5, 0($t0)		# A[a+b] = $t3

thanks in advance
to the admin: see i have put a HONEST effort...so can i now get help? /lol

Recommended Answers

All 3 Replies

thanks in advance
to the admin: see i have put a HONEST effort...so can i now get help? /lol

That's all we ask :D

so i'm learning MIPS right now and i think i get the hang of things, mind you it's all relatively easy (so i've been told), but i can't seem to get around this one problem. i was given a C++ fragment and need to convert (translate) it directly to MIPS.

and that equation is array[a+b] = array[a-b]+d

intially i thought, this would be the same as array[a]+array = array[a+b]...and of course i was wrong.

though wrong, i'd still like to post what i do have....and if someone can correct me and guide me to the right direction, that'll be great!

add    $t1, $s0, $s0        # $t1 = 2*a
add    $t1, $t1, $t1        # $t1 = 4*a
add    $t2, $s1, $s1        # $t1 = 2*b
add    $t2, $t2, $t2        # $t1 = 4*b
sub     $t3, $t1, $t2        # $t3 = A[a] – A[b] (or A[a-b]
add    $t3, $t3, $t0        # $t3 = address of A[a-b]
lw    $t3, 0($t0)        # $t3 = A[c-b]
add    $t4, $t3, $s2        # $t4 = A[a-b] + d
add    $t5, $t1, $t2        # $t5 = A[a] + A[b]
add    $t5, $t5, $t0        # $t5 = address of A[a+b]
lw    $t5, 0($t0)        # $t5 = A[a+b]
sw    $t5, 0($t0)        # A[a+b] = $t3

thanks in advance

Unless you have some la and lw instructions that you're not putting here, then you are missing the actual putting of values into registers

moved

Be a part of the DaniWeb community

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