Question: arrcopy.c ~~~~~~~~ #include int source[] = {3, 1, 4, 1, 5, 9, 0}; int dest[10]; int main ( ) { int k; for (k=0; source[k]!=0;

 arrcopy.c ~~~~~~~~ #include int source[] = {3, 1, 4, 1, 5,

arrcopy.c

~~~~~~~~

#include

int source[] = {3, 1, 4, 1, 5, 9, 0}; int dest[10];

int main ( ) { int k; for (k=0; source[k]!=0; k++) { dest[k] = source[k]; } printf ("%d values copied ", k); return 0; }

arrcopy.s

~~~~~~~~~~

.file 1 "arrcopy.c" .globl source .data .align 2 source: .word 3 .word 1 .word 4 .word 1 .word 5 .word 9 .word 0 .rdata .align 2 $LC0: .ascii "%d values copied \000" .text .align 2 .globl main .ent main main: .frame $sp,24,$31 # vars= 0, regs= 1/0, args= 16, extra= 0 .mask 0x80000000,-8 .fmask 0x00000000,0 subu $sp,$sp,24 sw $31,16($sp) jal __main la $9,source lw $2,0($9) move $8,$0 beq $2,$0,$L8 move $7,$0 la $10,dest $L6: addu $8,$8,1 sll $3,$8,2 addu $5,$7,$9 addu $2,$3,$9 addu $6,$7,$10 lw $4,0($2) move $7,$3 lw $3,0($5) #nop sw $3,0($6) bne $4,$0,$L6 $L8: la $4,$LC0 move $5,$8 jal printf lw $31,16($sp) move $2,$0 addu $sp,$sp,24 j $31 .end main

.comm dest,40

(Exercise) Compiled C MIPs This exercise contains a function that does the same array copy functionality. However, now we wrote the code in C and used a cross compiler to automatically generate the MIPS code. You will find the original C code in arrcopy.c and auto-generated assembly in arrcopy.s. Now look in arrcopy.s to answer the following: Q4. Where is the source pointer stored originally? Q5. Where is the dest pointer stored originally? Q6. What instruction is used to load the address of source and dest pointers? Q7. Where does the loop to copy values start? (give line and the first instruction and/or label of where it is) Q8. Explain what each line in the loop is trying to do in the following format: Instruction add $4, $0, $0 (as an example) Purpose to do nothing Corresponding C x 0

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!