TITLE C:\_test\wincons\inc.cpp .386P include listing.inc if @Version gt 510 .model FLAT else _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS _DATA SEGMENT DWORD USE32 PUBLIC 'DATA' _DATA ENDS CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS _BSS SEGMENT DWORD USE32 PUBLIC 'BSS' _BSS ENDS $$SYMBOLS SEGMENT BYTE USE32 'DEBSYM' $$SYMBOLS ENDS $$TYPES SEGMENT BYTE USE32 'DEBTYP' $$TYPES ENDS _TLS SEGMENT DWORD USE32 PUBLIC 'TLS' _TLS ENDS ; COMDAT ??_C@_0BC@MDPP@x?$DN?$CFd?0?5y?$DN?$CFd?0?5z?$DN?$CFd?6?$AA@ CONST SEGMENT DWORD USE32 PUBLIC 'CONST' CONST ENDS ; COMDAT ?func@@YAXHHH@Z _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS ; COMDAT _main _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' _TEXT ENDS FLAT GROUP _DATA, CONST, _BSS ASSUME CS: FLAT, DS: FLAT, SS: FLAT endif PUBLIC ?func@@YAXHHH@Z ; func PUBLIC ??_C@_0BC@MDPP@x?$DN?$CFd?0?5y?$DN?$CFd?0?5z?$DN?$CFd?6?$AA@ ; `string' EXTRN _printf:NEAR EXTRN __chkesp:NEAR ; COMDAT ??_C@_0BC@MDPP@x?$DN?$CFd?0?5y?$DN?$CFd?0?5z?$DN?$CFd?6?$AA@ ; File C:\_test\wincons\inc.cpp CONST SEGMENT ??_C@_0BC@MDPP@x?$DN?$CFd?0?5y?$DN?$CFd?0?5z?$DN?$CFd?6?$AA@ DB 'x=%d, y=' DB '%d, z=%d', 0aH, 00H ; `string' CONST ENDS ; COMDAT ?func@@YAXHHH@Z _TEXT SEGMENT _x$ = 8 _y$ = 12 _z$ = 16 ?func@@YAXHHH@Z PROC NEAR ; func, COMDAT ; 6 : void func(int x, int y, int z) { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 40 sub esp, 64 ; 00000040H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 8d 7d c0 lea edi, DWORD PTR [ebp-64] 0000c b9 10 00 00 00 mov ecx, 16 ; 00000010H 00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00016 f3 ab rep stosd ; 7 : printf("x=%d, y=%d, z=%d\n", x, y, z); 00018 8b 45 10 mov eax, DWORD PTR _z$[ebp] 0001b 50 push eax 0001c 8b 4d 0c mov ecx, DWORD PTR _y$[ebp] 0001f 51 push ecx 00020 8b 55 08 mov edx, DWORD PTR _x$[ebp] 00023 52 push edx 00024 68 00 00 00 00 push OFFSET FLAT:??_C@_0BC@MDPP@x?$DN?$CFd?0?5y?$DN?$CFd?0?5z?$DN?$CFd?6?$AA@ ; `string' 00029 e8 00 00 00 00 call _printf 0002e 83 c4 10 add esp, 16 ; 00000010H ; 8 : } 00031 5f pop edi 00032 5e pop esi 00033 5b pop ebx 00034 83 c4 40 add esp, 64 ; 00000040H 00037 3b ec cmp ebp, esp 00039 e8 00 00 00 00 call __chkesp 0003e 8b e5 mov esp, ebp 00040 5d pop ebp 00041 c3 ret 0 ?func@@YAXHHH@Z ENDP ; func _TEXT ENDS PUBLIC _main ; COMDAT _main _TEXT SEGMENT _i$ = -4 _main PROC NEAR ; COMDAT ; 11 : { 00000 55 push ebp 00001 8b ec mov ebp, esp 00003 83 ec 44 sub esp, 68 ; 00000044H 00006 53 push ebx 00007 56 push esi 00008 57 push edi 00009 8d 7d bc lea edi, DWORD PTR [ebp-68] 0000c b9 11 00 00 00 mov ecx, 17 ; 00000011H 00011 b8 cc cc cc cc mov eax, -858993460 ; ccccccccH 00016 f3 ab rep stosd ; 12 : int i=0; 00018 c7 45 fc 00 00 00 00 mov DWORD PTR _i$[ebp], 0 ; 13 : func(++i, ++i, ++i); 0001f 8b 45 fc mov eax, DWORD PTR _i$[ebp] 00022 83 c0 01 add eax, 1 00025 89 45 fc mov DWORD PTR _i$[ebp], eax 00028 8b 4d fc mov ecx, DWORD PTR _i$[ebp] 0002b 51 push ecx 0002c 8b 55 fc mov edx, DWORD PTR _i$[ebp] 0002f 83 c2 01 add edx, 1 00032 89 55 fc mov DWORD PTR _i$[ebp], edx 00035 8b 45 fc mov eax, DWORD PTR _i$[ebp] 00038 50 push eax 00039 8b 4d fc mov ecx, DWORD PTR _i$[ebp] 0003c 83 c1 01 add ecx, 1 0003f 89 4d fc mov DWORD PTR _i$[ebp], ecx 00042 8b 55 fc mov edx, DWORD PTR _i$[ebp] 00045 52 push edx 00046 e8 00 00 00 00 call ?func@@YAXHHH@Z ; func 0004b 83 c4 0c add esp, 12 ; 0000000cH ; 14 : return 0; 0004e 33 c0 xor eax, eax ; 15 : } 00050 5f pop edi 00051 5e pop esi 00052 5b pop ebx 00053 83 c4 44 add esp, 68 ; 00000044H 00056 3b ec cmp ebp, esp 00058 e8 00 00 00 00 call __chkesp 0005d 8b e5 mov esp, ebp 0005f 5d pop ebp 00060 c3 ret 0 _main ENDP _TEXT ENDS END