Hi I need help with this ASAP. I'm a third year elec. engineering student who has to take a substitute module to C++ programming as they have discarded that module altogether. my college have landed me a module that severly deals with MIPS and them being the non experts feel it is the course that is the most closely related to the C++ course I was doing originally(it isn't at all). what makes matters worse is that the MIPS module is a third year module and I was only registered 5 weeks into the course as well and thus I'm trying to learn(understand firstly) a two year(and five weeks) course of MIPS content with no original experience or knowledge of it. Essentially part of the assignment is:

Inspect the data help at [0x10010000]. Stop simulating when you reach syscall 10 (exit). Inspect the data held at [0x10010000].
Re-load the program, inspect the data, run the entire program using the Go command and inspect the data.

.data # data goes in data segment
D_in: .word 1,2,3 # data stored in words
D_out: .word 9,8,7
.text # code goes in text segment
.globl main # must be global symbol
main: la $t0, D_out # load address pseudo-instruction
la $t1, D_in
lw $t2, 8($t1)
sw $t2, 0($t0)
lw $t2, 4($t1)
sw $t2, 4($t0)
lw $t2, 0($t1)
sw $t2, 8($t0)
jr $ra # return

1. Comment the program above to explain what it does, change the data and run it in SPIM.

I've been at the computer for hours trying to get to some sort of grips with this but I'm finding it absolutely impossible. Usually if i can get some sort of understanding I should be able to pick it up from there. Any one willing to help. I'd be very grateful.