Локальні змінні і аргументи функцій розміщуються у стеку (якщо звісно не задіяно якусь оптимізацію):
1 void f(int *p1, int *p2) 2 { 3 // standard function prolog 4 // push ebp 5 // mov ebp, esp 6 // sub esp, 8 <-- 2 local variables, 4 bytes each 7 8 int i1 = 3; 9 // mov dword ptr [ebp-8], 3 10 11 int i2 = 0x42; 12 // mov dword ptr [ebp-4], 42h 13 14 i1 = *p1; 15 // mov eax, dword ptr [ebp+8] 16 // mov ecx, dword ptr [eax] 17 // mov dword ptr[ebp-8], ecx 18 19 i2 = *p2; 20 // mov eax, dword ptr [ebp+0ch] 21 // mov ecx, dword ptr [eax] 22 // mov dword ptr[ebp-4], ecx 23 24 // standard epilogue 25 // mov esp, ebp 26 // pop ebp 27 // ret 28 }