1)look here http://en.wikipedia.org/wiki/Two's_complement
2) i have no idea
3) you have the right idea about adding in AA, but remember the loop. figure out what what its doing and when it's exiting
4) this one is confusing. he didn't say how to do it in class so i'm going to argue with him tomorrow. but there's only 4 numbers in each slot. you need one address and then another for the first two spaces. and the last space is the offset to get from the first to the last
Hmm... Interesting there... Looks challenging for me to find the solution. Haven't done MIPS for 3+ years... The memory allocation is somewhat confusing but not too difficult to learn. I have already forgotten all of them though. :(
#2 - If you use SPIM, you should see all the memory allocation in HEX and should be able to answer this question.
li $v0, 0
li $t1, 0
li $t2, 0
beq $t2, 6, endloop <-- branch to endloop if equal to 6
lb $ $v1, AA($t1) <-- load byte of the value in AA to $v1
addu $v0, $v0, $v1 <-- add unsigned value and store to $v0
addi $t2, $t2, 1 <-- loop counter (not really make sense to use this one)
addi $t1, $t1, 1 <-- next slot in AA (could only use this one in loop checking)
As a result, you are adding unsigned values, not only adding value of AA.
#4 - here is my guess...
lui $s1, 0X____ <-- load the starting offset
ori $s1, $s1, 0X__ <-- compute the offset
lw $t1, 0X__($s1) <-- load 4 bytes to $t1 using the offset (look at Q2)