Question: iven an array of 2 integers, write a program to implement the following C code that appends elements to the array: // Declaration of variables
iven an array of 2 integers, write a program to implement the following C code that appends elements to the array:
// Declaration of variables int* A; // Integer array A with the base address pointing to variable A int a; char b, c; short d; // Append array elements { A[3], A[2] } = A[1] * A[0]; A[4] = A[2] / 230; a = A[2] % 230; b = a >> 16; // '>>' = right shift c = a & 8; // '&' = bit-wise and d = a << 2; // '<<' = left shift A[5] = {b, c, d}; // {} = concatenation | Registers | Variables |
|---|---|
| $s0 | A |
| Addresses | Contents |
|---|---|
| $s0 | A[0] |
| $s0+4 | A[1] |
You may use any temporary registers from $t0 to $t9 or saved registers from $s1 to $s7. Clearly specify your choice of registers and explain your code using comments (5 points).
Example Test: If the values of $s1 through $s7 are initialized in the simulator as:
| Registers | Data |
|---|---|
| $s0 | 4000 |
| Addresses | Contents |
|---|---|
| 4000 | 4 |
| 4004 | 5 |
the resultant array is:
| Addresses | Contents |
|---|---|
| 4000 | 4 |
| 4004 | 5 |
| 4008 | 20 |
| 4012 | 0 |
| 4016 | 0 |
| 4020 | 80 |
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
