Ассемблер для Windows


Программа на Си++ использующая объекты



Рисунок 4.5.7. Программа на Си++, использующая объекты.

Ниже на Рисунок 4.5.8. представлен дизассемблированный код процедуры main.

CODE 00401122 _main proc near ; DATA XREF: DATA:0040C044 CODE 00401122 CODE 00401122 var_28 = dword ptr -28h CODE 00401122 var_18 = word ptr -18h CODE 00401122 dest = dword ptr -4 CODE 00401122 argc = dword ptr 8 CODE 00401122 argv = dword ptr 0Ch CODE 00401122 envp = dword ptr 10h CODE 00401122 CODE 00401122 push ebp CODE 00401123 mov ebp, esp CODE 00401125 add esp, 0FFFFFFD8h CODE 00401128 push ebx CODE 00401129 mov eax, offset stru_40C084 CODE 0040112E call @_InitExceptBlockLDTC CODE 00401133 push 12Ch CODE 00401138 call unknown_libname_8 CODE 0040113D pop ecx CODE 0040113E mov [ebp+dest], eax CODE 00401141 test eax, eax CODE 00401143 jz short loc_40117D CODE 00401145 mov [ebp+var_18 ], 14h CODE 0040114B push offset aPrivet ; src CODE 00401150 push [ebp+dest] ; dest CODE 00401153 call _strcpy CODE 00401158 add esp, 8 CODE 0040115B push offset aPrivet_0 ; src CODE 00401160 mov edx, [ebp+dest] CODE 00401163 add edx, 0C8h CODE 00401169 push edx ; dest CODE 0040116A call _strcpy CODE 0040116F add esp, 8 CODE 00401172 mov [ebp+var_18], 8 CODE 00401178 mov ebx, [ebp+dest] CODE 0040117B jmp short loc_401180 CODE 0040117D ; ------------------------------------ CODE 0040117D CODE 0040117D loc_40117D: ; CODE XREF: _main+21 CODE 0040117D mov ebx, [ebp+dest] CODE 00401180 CODE 00401180 loc_401180: ; CODE XREF: _main+59 CODE 00401180 push ebx ; dest CODE 00401181 call sub_401108 CODE 00401186 pop ecx CODE 00401187 push ebx ; char CODE 00401188 push offset aS ; _va_args CODE 0040118D call _printf CODE 00401192 add esp, 8 CODE 00401195 push ebx ; block CODE 00401196 call @$bdele$qpv ; operator delete(void *) CODE 0040119B pop ecx CODE 0040119C mov eax, [ebp+var_28] CODE 0040119F mov large fs:0, eax CODE 004011A5 xor eax, eax CODE 004011A7 pop ebx CODE 004011A8 mov esp, ebp CODE 004011AA pop ebp CODE 004011AB retn CODE 004011AB _main endp



Содержание раздела