Write a program in C and in MIPS assembly language program that:
Initializes an
Write a program in C and in MIPS assembly language program that:
Initializes an integer array with 3 rows and 5 columns: 1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
inputs a row and column number from the user
main must call a child function (using jal in MIPS assembly) that calculates the memory address of the chosen row & column like this:int* arrayAddress( int row, int col, int ncolumns, array); //returns address of array[row][col]
use shift instead of multiply where appropriate
print the address and the value of the chosen array element
You must submit THREE files: 1) Your .asm MIPS assembly file – it MUST be in the style / format of the prompt and MIPS .asm example filesLinks to an external site.(labels: start in first column, tab to instruction mnemonics, tab to operands, tab to comment, etc.) The arguments passed from your main program should be row in $a0, col in $a1, ncolumns in $a2, and base address of the array in $a3 and the address return value should be in $v0 when the arrayAddress() child function returns.
2) Your .c source file accessing the array by calling the child function arrayAddress( int row, int col, int ncolumns, array) which uses pointer arithmetic to return the address of array[row][col].
3) A brief report document file in .pdf .doc or .docx including:
a description of the program
2 screen shots showing each one (C and MIPS version) working
the .c and .asm source code MUST be pasted into the end of the document