Question: The problems in this Exercise refer to the following function, given as array code: Compare the worst-case number of executed instructions per non-last loop iteration
The problems in this Exercise refer to the following function, given as array code:![a. void copy(int a[], int b[], int n) { int i; for(i=0; i-n;i++) a[i]=b[i]; b. } void shift(int a[], int n) {](https://dsd5zvtm8ll6.cloudfront.net/images/question_images/1698/1/3/6/40365378153b0a7d1698136402789.jpg)
Compare the worst-case number of executed instructions per non-last loop iteration in your array-based code from 2.33.1 and your pointer-based code from 2.33.3. Note: the worst case occurs when branch conditions are such that the longest path through the code is taken, i.e., if there is an if statement, the result of the condition check is such that the path with more instructions is taken. However, if the result of the condition check would cause the loop to exit, then we assume that the path that keeps us in the loop is taken.
Data from 2.33.1
Translate this function into MIPS assembly.
Data from 2.33.3
Translate your pointer-based C code from 2.33.2 into MIPS assembly.
Data from 2.33.2
Convert this function into pointer-based code (in C).
a. void copy(int a[], int b[], int n) { int i; for(i=0; i-n;i++) a[i]=b[i]; b. } void shift(int a[], int n) { int i; for(i=0; i-n-1; i++) a[i]=a[i+1]; }
Step by Step Solution
3.31 Rating (154 Votes )
There are 3 Steps involved in it
To compare the worstcase number of executed instructions per nonlast loop iteration between the arra... View full answer
Get step-by-step solutions from verified subject matter experts
