Write the following subroutine in x86 assembly: Recall that: Subroutine argument
ID: 3678777 • Letter: W
Question
Write the following subroutine in x86 assembly: Recall that: Subroutine arguments are passed on the stack, and can be accessed within the body of the subroutine starting at address EBP+8. At the start of each subroutine: Save EBP on the stack Copy the current value of the stack pointer (ESP) to EBP Create space within the stack for each local variable by subtracting the appropriate value from ESP. For example, if your function uses four integer local variables, each of which contains four bytes, subtract 16 from ESP. Local variables can then be accessed starting at the address EBP-4. A subroutine's return value is typically stored in EAX.Explanation / Answer
This program may helpto you.
This is a conversion code.
Code:
movl %edi, -20(%rbp)
movl %esi, -24(%rbp)
movl %edx, -28(%rbp)
movl -24(%rbp), %eax
movl -20(%rbp), %edx
addl %edx, %eax
movl %eax, -4(%rbp)
movl -28(%rbp), %eax
movl -4(%rbp), %edx
leal (%rdx,%rax), %ecx
movl -28(%rbp), %eax
movl -4(%rbp), %edx
subl %eax, %edx
movl %edx, %eax
imull %ecx, %eax
popq %rbp
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.