.386p
model flat
ifndef ??version
?debug macro
endm
endif
?debug S "TESTCPP.CPP"
?debug T "TESTCPP.CPP"
_TEXT segment dword public use32 'CODE'
_TEXT ends
_DATA segment dword public use32 'DATA'
_DATA ends
_BSS segment dword public use32 'BSS'
_BSS ends
DGROUP group _BSS,_DATA
_TEXT segment dword public use32 'CODE'
@myclass@printw1$quc proc near
?live1@0:
;
; void myclass::printw1(byte t) {
;
push ebp
mov ebp,esp
mov eax,dword ptr [ebp+8]
;
; printf("s%u->myclass.w1 = %u\n",t,w1);
;
?live1@12: ; EAX = this
@1:
movzx eax,word ptr [eax]
push eax
xor eax,eax
mov al,byte ptr [ebp+12]
push eax
push offset s@
call _printf
add esp,12
;
; }
;
?live1@24: ;
@2:
pop ebp
ret
@myclass@printw1$quc endp
@myclass@$bctr$qv proc near
?live1@36:
;
; myclass::myclass() {
;
push ebp
mov ebp,esp
push ebx
mov ebx,dword ptr [ebp+8]
;
; printf("MyClass constructor called!\n");
;
?live1@48: ; EBX = this
@3:
push offset s@+22
call _printf
pop ecx
;
; }
;
mov eax,dword ptr [__DestructorCountPtr]
inc dword ptr [eax]
mov eax,ebx
?live1@72: ;
@5:
@4:
pop ebx
pop ebp
ret
@myclass@$bctr$qv endp
@myclass@$bdtr$qv proc near
?live1@84:
;
; myclass::~myclass() {
;
push ebp
mov ebp,esp
push ebx
mov ebx,dword ptr [ebp+8]
@6:
mov eax,dword ptr [__DestructorCountPtr]
dec dword ptr [eax]
test ebx,ebx
je short @7
;
; printf("MyClass deconstructor called!\n");
;
?live1@96: ; EBX = this
push offset s@+51
call _printf
pop ecx
test byte ptr [ebp+12],1
je short @8
push ebx
call @$bdele$qpv
pop ecx
;
; }
;
?live1@108: ;
@8:
@7:
@9:
pop ebx
pop ebp
ret
@myclass@$bdtr$qv endp
_TEXT ends
_BSS segment dword public use32 'BSS'
_aaa label byte
db 2 dup(?)
_bbb label byte
db 2 dup(?)
_ccc label byte
db 2 dup(?)
_ddd label byte
db 2 dup(?)
_eee label byte
db 2 dup(?)
_BSS ends
_TEXT segment dword public use32 'CODE'
_main proc near
?live1@120:
;
; void main(void) {
;
;
; /*/
; myclass *s1,*s2;
; printf("Hello, world! From 'C++'\n");
; s1 = new myclass;
; s2 = new myclass;
; s1->w1=4;
; s2->w1=67;
; s1->printw1(1);
; s2->printw1(2);
; delete s1;
; delete s2;
; /*/
; }
;
@10:
@11:
ret
_INIT_ segment word public use32 'INITDATA'
_INIT_ ends
_main endp
_TEXT ends
_INIT_ segment word public use32 'INITDATA'
db 0
db 32
dd @_STCON_$qv
_INIT_ ends
_TEXT segment dword public use32 'CODE'
_TEXT ends
_DATA segment dword public use32 'DATA'
_$A label dword
dd @@$xt$7myclass
dd 0
dd _aaa
dd @@$xt$7myclass
dd 0
dd _bbb
dd @@$xt$7myclass
dd 0
dd _ccc
dd @@$xt$7myclass
dd 0
dd _ddd
dd @@$xt$7myclass
dd 0
dd _eee
dd 0
_$B label dword
dd 0
dd -32
dw 0
dw 5
dd 0
dd _$A
_DATA ends
_TEXT segment dword public use32 'CODE'
@_STCON_$qv proc near
?live1@144:
push ebp
mov ebp,esp
add esp,-32
@12:
mov eax,offset _$B
call @__InitExceptBlock
mov word ptr [ebp-16],8
push offset _aaa
call @myclass@$bctr$qv
pop ecx
push offset _bbb
call @myclass@$bctr$qv
pop ecx
push offset _ccc
call @myclass@$bctr$qv
pop ecx
push offset _ddd
call @myclass@$bctr$qv
pop ecx
push offset _eee
call @myclass@$bctr$qv
pop ecx
mov eax,dword ptr [ebp-32]
mov dword ptr fs:[0],eax
@13:
mov esp,ebp
pop ebp
ret
_EXIT_ segment word public use32 'EXITDATA'
_EXIT_ ends
@_STCON_$qv endp
_TEXT ends
_EXIT_ segment word public use32 'EXITDATA'
db 0
db 32
dd @_STDES_$qv
_EXIT_ ends
_TEXT segment dword public use32 'CODE'
@_STDES_$qv proc near
?live1@168:
push ebp
mov ebp,esp
@14:
push 2
push offset _eee
call @myclass@$bdtr$qv
add esp,8
push 2
push offset _ddd
call @myclass@$bdtr$qv
add esp,8
push 2
push offset _ccc
call @myclass@$bdtr$qv
add esp,8
push 2
push offset _bbb
call @myclass@$bdtr$qv
add esp,8
push 2
push offset _aaa
call @myclass@$bdtr$qv
add esp,8
@15:
pop ebp
ret
@_STDES_$qv endp
_TEXT ends
_TEXT segment dword public use32 'CODE'
@$xt$7myclass segment virtual
@@$xt$7myclass label byte
dd 2
dw 3
dw 48
dd -1
dd 3
dw 56
dw 60
dd 0
dw 0
dw 0
dd 0
dd 1
dd 1
dd @myclass@$bdtr$qv
dw 1
dw 64
db 109
db 121
db 99
db 108
db 97
db 115
db 115
db 0
dd 0
dd 0
dd 0
@$xt$7myclass ends
_TEXT ends
_DATA segment dword public use32 'DATA'
s@ label byte
; s@+0:
db "s%u->myclass.w1 = %u",10,0
; s@+22:
db "MyClass constructor called!",10,0
; s@+51:
db "MyClass deconstructor called!",10,0
align 4
_DATA ends
_TEXT segment dword public use32 'CODE'
_TEXT ends
_s@ equ s@
extrn @$bdele$qpv:near
extrn __DestructorCountPtr:dword
extrn __Exception_list:dword
extrn @__InitExceptBlock:near
extrn _printf:near
public @myclass@printw1$quc
public @myclass@$bctr$qv
public @myclass@$bdtr$qv
public _aaa
public _bbb
public _ccc
public _ddd
public _eee
public _main
?debug D "D:\QLIB\32\h\vesa.h" 8574 46525
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\video.h" 8943 44349
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\process.h" 8815 48204
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\alloc.h" 8815 48032
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\stdlib.h" 8941 3287
?debug D "D:\QLIB\32\h\dos.h" 8889 47579
?debug D "D:\QLIB\32\h\fcntl.h" 8557 39733
?debug D "D:\QLIB\32\h\DOS.H" 8889 47579
?debug D "D:\QLIB\32\h\io.h" 8557 40026
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\dos.h" 8889 47579
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\stdio.h" 8936 33906
?debug D "D:\QLIB\32\h\stddef.h" 8941 48277
?debug D "D:\QLIB\32\h\qlib.h" 8915 33129
?debug D "TESTCPP.CPP" 8945 32840
end