Answered step by step
Verified Expert Solution
Question
1 Approved Answer
Problem 3 A. (2 points) Assume we are on a x86, 64-bit Linux OS and we have the following code below. Assume the string hello
Problem 3 A. (2 points) Assume we are on a x86, 64-bit Linux OS and we have the following code below. Assume the string "hello is stored at the memory address 0x800020. Describe the values of the registers RAX,RBX,RCX,RDX, RDI and RSI immediately before jumping to the function foo() (how are these registers setup per the Linux calling convention). If the register is not used for this operation, set it to unsigned int foo (unsigned int a, char *str) { return 65; int main() { int b = foo (3, "hello''); return b; B. (2 points) When foo() executes the line "return 65", it is done executing and will return back to main() where it executes "return b". How does the processor know to go to this line next? (Hint: stack) Problem 3 A. (2 points) Assume we are on a x86, 64-bit Linux OS and we have the following code below. Assume the string "hello is stored at the memory address 0x800020. Describe the values of the registers RAX,RBX,RCX,RDX, RDI and RSI immediately before jumping to the function foo() (how are these registers setup per the Linux calling convention). If the register is not used for this operation, set it to unsigned int foo (unsigned int a, char *str) { return 65; int main() { int b = foo (3, "hello''); return b; B. (2 points) When foo() executes the line "return 65", it is done executing and will return back to main() where it executes "return b". How does the processor know to go to this line next? (Hint: stack)
Step 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