.file "caller.c" .intel_syntax .globl _v .data .align 4 _v: .long 10 .globl _w .align 4 _w: .long 20 .globl _x .align 4 _x: .long 30 .text .globl _task2 .def _task2; .scl 2; .type 32; .endef _task2: push ebp mov ebp, esp mov eax, DWORD PTR [ebp+12] add eax, DWORD PTR [ebp+8] add eax, DWORD PTR [ebp+16] pop ebp ret .globl _task1 .def _task1; .scl 2; .type 32; .endef _task1: push ebp mov ebp, esp sub esp, 12 mov eax, DWORD PTR _x mov DWORD PTR [esp+8], eax mov eax, DWORD PTR _w mov DWORD PTR [esp+4], eax mov eax, DWORD PTR _v mov DWORD PTR [esp], eax call _task2 mov DWORD PTR _u, eax leave ret .def ___main; .scl 2; .type 32; .endef .section .rdata,"dr" LC0: .ascii "u = %d\12\0" .text .globl _main .def _main; .scl 2; .type 32; .endef _main: push ebp mov ebp, esp sub esp, 24 and esp, -16 mov eax, 0 add eax, 15 add eax, 15 shr eax, 4 sal eax, 4 mov DWORD PTR [ebp-4], eax mov eax, DWORD PTR [ebp-4] call __alloca call ___main call _task1 mov eax, DWORD PTR _u mov DWORD PTR [esp+4], eax mov DWORD PTR [esp], OFFSET FLAT:LC0 call _printf mov eax, 0 leave ret .comm _u, 16 # 4 .def _printf; .scl 3; .type 32; .endef