Question: #include #include // Problem 1 // Problem 2 long decode2 (long x, long y, long z) { // implement this return 2; // replace this

#include #include

// Problem 1

// Problem 2 long decode2 (long x, long y, long z) { // implement this return 2; // replace this with appropriate return statement }

// Problem 3 void fun(long x, long y, long z){

}

int main(){

return 0; }

Here is the problem

1. Compile the file sum.c, which is in the hw3 folder, using the following command. gcc -Og -c sum.c Next, dis-assemble the object file created using objdump: objdump -d sum.o Study the generated assembly and find out what registers are used to store variables i and s of the code in sum.c. Explain your reasoning. Write your answer as a comment in hw3.c. 2. For a function with prototype

long decode2(long x, long y, long z);

gcc generates the following assembly code:

decode2: movq %rdi, %rax subq %rdx, %rax movq %rax, %rdx imulq %rax, %rdi salq $63, %rdx sarq $63, %rdx xorq %rdx, %rdi leaq (%rdi,%rsi), %rax ret

Parameters x, y, and z are passed in registers %rdi, %rsi, and %rdx. The code stores the return value in register %rax. Reverse-engineer decode2. (In other words, write C code for decode2 that will have an effect equivalent to the assembly code shown.) Note: read Section 3.5 first and write your solution in hw3.c. To check your solution, compile hw3.c to assembly code using

$ gcc -Og -S hw3.c

and then view the file hw3.s:

$ cat hw3.s

3. Consider the following assembly code:

movq (%rsi), %rax movq (%rdx), %rcx movq %rcx, (%rsi) movq (%rdi), %rcx movq %rcx, (%rdx) movq %rax, (%rdi)

This is the assembly code for a function that receives three variables at registers %rdi, %rsi and %rdx. By studying the above code explain what the function does. Then write the C code for the function implementing the function fun in hw3.c.

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!