Register to reply

MIPS 32 ASM to C code, did i do this right?

by mr_coffee
Tags: code, mips
Share this thread:
Sep13-06, 07:24 PM
P: 1,629
have the following MIPS 32 asm code:
Assuming B is an array of 10 words whose base address is in register $s0, andvariable c and i are in $s1 and $s2, respectively. What is the C statement implemented by the below MIPS assembly code?
add $t0, $s2, $s2
add $t0, $t0, $t0
lw $t1, 0($s0)
lw $t2, 8($s0)
sub $s1, $t2, $t1

In C what does it look like?
i said c = B[i+2] - B[i]

but the other optpoins are:
c = B[i] - B[i+2]
c = B[i] - B[i+8]
c = B[i+8] - B[i]

Can someone see if i'm correct?

lw $t2,8($s0);
I said was really index B[2] because, in mips memory is set up by 4's.

If i have memory set up like this:

[0x10ff00ff] 32
[0x00ff00ff] 28
[0x0000ffff] 24
[0xffff0000] 20
[0x10ffff00] 12
[0xff00ffff] 8
[0xff0000ff] 4
[0x0000ff44] 0
32 bit data and the numbers are word address

I'm confused on what the beginning codes prupose is for, the 2 add statements.
It basically does this i think:
$t0 = i + i;
$t0 = (i+i) + (i+i)?
Phys.Org News Partner Science news on
Bees able to spot which flowers offer best rewards before landing
Classic Lewis Carroll character inspires new ecological model
When cooperation counts: Researchers find sperm benefit from grouping together in mice
Sep13-06, 11:40 PM
P: 1,629
Yep it was correct

Register to reply

Related Discussions
MIPS help Programming & Computer Science 7
Pros and cons of MIPS relative to instruction set choices Electrical Engineering 1
Help with MIPS Programming & Computer Science 0
Some MIPS programming help Programming & Computer Science 0
Small MIPS programmes Introductory Physics Homework 2