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
Fungus deadly to AIDS patients found to grow on trees
Canola genome sequence reveals evolutionary 'love triangle'
Scientists uncover clues to role of magnetism in iron-based superconductors
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