void baz(int a, int * p) { int c; c = a-*p; if (c) { } int d = c*2; *p -= d; (continued on next page) pushq %rbp movq %rsp,%rbp subq $16,%rsp movl %ecx,16(%rbp) movq %rdx, 24(%rbp) movq 24(%rbp), %rax movl (%rax), %eax movl 16(%rbp),%edx subl %eax,%edx movl %edx,%eax movl %eax,-4(%rbp) cmpl $0, -4(%rbp) je L2 movl -4(%rbp),%eax addl %eax,%eax movl %eax,-8(%rbp) movl 24(%rbp),%rax movl (%rax), %eax -8(%rbp),%eax %eax,%edx movq 24(%rbp), %rax movl %edx, (%rax) jmp L4: subl movl

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

I need help with this assembly code / C code question showing below

void baz(int a, int * p)
{
pushq %rbp
movq %rsp,%rbp
subq $16,%rsp
int c;
c = a-*p;
movl %ecx,16(%rbp)
movq %rdx, 24(%rbp)
movq 24(%rbp), %rax
movl (%rax),%eax
movl 16(%rbp),%edx
subl %eax,%edx
movl %edx,%eax
movl %eax,-4(%rbp)
cmpl $0, -4(%rbp)
je L2
if (c)
{
int d = c*2;
movl -4(%rbp),%eax
addl %eax,%eax
movl %eax,-8(%rbp)
*p -= d;
movl 24(%rbp),%rax
movl (%rax),%eax
subl -8(%rbp),%eax
movl %eax,%edx
movq 24(%rbp), %rax
movl %edx, (%rax)
jmp L4:
}
(continued on next page)
Transcribed Image Text:void baz(int a, int * p) { pushq %rbp movq %rsp,%rbp subq $16,%rsp int c; c = a-*p; movl %ecx,16(%rbp) movq %rdx, 24(%rbp) movq 24(%rbp), %rax movl (%rax),%eax movl 16(%rbp),%edx subl %eax,%edx movl %edx,%eax movl %eax,-4(%rbp) cmpl $0, -4(%rbp) je L2 if (c) { int d = c*2; movl -4(%rbp),%eax addl %eax,%eax movl %eax,-8(%rbp) *p -= d; movl 24(%rbp),%rax movl (%rax),%eax subl -8(%rbp),%eax movl %eax,%edx movq 24(%rbp), %rax movl %edx, (%rax) jmp L4: } (continued on next page)
else
{
int e = "p/2;
L2:
movq 24(%rbp),%rax
movl (%rax),%eax
movl %eax, %edx
shrl $31, %edx
addl %edx, %eax
sarl
%eax
movl %eax,-12(%rbp)
*p += e-a;
movl 24(%rbp),%rax
movl (%rax), %edx
movl -12(%rbp), %eax
subl 16(%rbp),%eax
addl
%eax,%edx
movq 24(%rbp), %rax
movl %edx,(%rax)
L4:
addq $16, %rsp
popq %rbp
ret
}
3. Registers
Rewrite the preceding example using as many registers as is reasonable.
If you use any callee save registers, remember to add the save code.
Transcribed Image Text:else { int e = "p/2; L2: movq 24(%rbp),%rax movl (%rax),%eax movl %eax, %edx shrl $31, %edx addl %edx, %eax sarl %eax movl %eax,-12(%rbp) *p += e-a; movl 24(%rbp),%rax movl (%rax), %edx movl -12(%rbp), %eax subl 16(%rbp),%eax addl %eax,%edx movq 24(%rbp), %rax movl %edx,(%rax) L4: addq $16, %rsp popq %rbp ret } 3. Registers Rewrite the preceding example using as many registers as is reasonable. If you use any callee save registers, remember to add the save code.
Expert Solution
steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY