Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

7. Given the following x86-64 assembly language code for a recursive function f() produced using the -og option to gcc: f: movl %esi, %eax

 

7. Given the following x86-64 assembly language code for a recursive function f() produced using the -og option to gcc: f: movl %esi, %eax testl %edi, %edi. jg .L7 rep ret .L7: subq $8, %rsp leal subl 1(%rsi), %esi $1, %edi call f addq ret $8, %rsp a. Annotate the above assembly code. For instructions where it makes sense, your annotations should be of the form machineElement = srcExpr where machine Element should specify a x86-64 register and srcExpr should be an expression involving made-up names for variables from a C program. You should annotate the arguments to f() as well. b. Write a C function which is equivalent to the above assembly code. Ideally, the C function should compile into the above code, but it is sufficient that it merely be semantically equivalent. c. Give a simple characterization of what this function computes. d. Give a non-recursive C function which computes the same result. 15-points

Step by Step Solution

There are 3 Steps involved in it

Step: 1

a Annotated x8664 assembly code assembly f movl esi eax Move the value of the second para... blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Computer organization and architecture designing for performance

Authors: william stallings

8th edition

136073735, 978-0136073734

More Books

Students also viewed these Programming questions

Question

Define data speculation.

Answered: 1 week ago