Address calculation and instruction count

problems:
Show the matrix base address (of A, B and C) in hexadecimal.
Report the size of a double floating point number.
Report the size of the matrix, in bytes.
For each of A, B and C, report the address of:array[0][0]
array[0][1]
array[0][size-1]
array[1][0]
array[size-1][0]
array[size-1][1]
array[size-1][size-1]

Give a formula for calculating the address of element i,j of the matrix.
Is this row major or column major form of storing a matrix?
Compile your C program to assembly (“-S” option on compile).
Edit the assembly program, adding comments. Ignore everything except the matrix multiply portion:Identify the loop controls. How many nested loops are there?
Identify the instructions that calculate the element addresses for A, B, and C matrix elements.
Identify the actual floating point multiply and adds.
Identify what variables are kept in CPU registers.

Calculate the total number of instructions in the matrix multiply.
Parts of this will be kind of a hassle, because of the complicated x86 and ARM addressing modes (MIPS is simpler). Submit the edited assembly source, and a report (in PDF) with the answers to the other questions. Submit them in a tar or zip file.