Metropoli BBS
VIEWER: testcpp.asm MODE: TEXT (ASCII)
	.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
[ RETURN TO DIRECTORY ]