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, 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 0Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started