Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a C translation of the NASM program below, sticking to the assembly code a

ID: 3815951 • Letter: W

Question

Write a C translation of the NASM program below, sticking to the assembly code as much as possible. Use single-letter variable names for function parameters (e.g., int foo(int x, int y)) and for local variables within function (e.g., int z) instead of using x86 register names.

Hint: This program outputs the number 4.

nclude asm io. inc segment data dd dd segment bss resd 1 segment text global asm main asm main enter 0,0 pusha push dword [b] push dword [a] call add esp, 8 add eax, [b] call print int call print nu popa eax, 0 mOV Leave ret push ebp ebp, esp lmov sub esp 4 mov dword [ebp-4], 1 cmp dword [ebp-121, 3 jz endf mov ebx, Cebp+81 dec ebx push ebx push dword [ebp-12] call f add esp, 8 mov ebx, [ebp+8] sub ebx, eax mov [ebp-41, ebx endf mov eax, [ebp-4] mov esp, ebp pop ebp ret

Explanation / Answer

mov ebp, esp
and esp, 0FFFFFFF0H   
sub esp, 16
mov dword [esp], ?_001
call puts
mov eax, 0
leave   
ret   
End

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote