⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.~asm

📁 bcb中实现调用汇编完成转换功能,学习如何进行此类调用的基础
💻 ~ASM
📖 第 1 页 / 共 5 页
字号:
	.386p
	ifdef ??version
	if ??version GT 500H
	.mmx
	endif
	endif
	model flat
	ifndef	??version
	?debug	macro
	endm
	endif
	?debug	S "J:\bcbtest\test1\Unit1.cpp"
	?debug	T "J:\bcbtest\test1\Unit1.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
$$BSYMS	segment byte public use32 'DEBSYM'
$$BSYMS	ends
$$BTYPES	segment byte public use32 'DEBTYP'
$$BTYPES	ends
$$BNAMES	segment byte public use32 'DEBNAM'
$$BNAMES	ends
$$BROWSE	segment byte public use32 'DEBSYM'
$$BROWSE	ends
$$BROWFILE	segment byte public use32 'DEBSYM'
$$BROWFILE	ends
 ?debug C FB0C0100600000
DGROUP	group	_BSS,_DATA
_BSS	segment dword public use32 'BSS'
	align	4
_Form1	label	dword
	db	4	dup(?)
_BSS	ends
_DATA	segment dword public use32 'DATA'
@_$DCAF$@TForm1@$bctr$qqrp18Classes@TComponent	segment virtual
	align	2
@@_$DCAF$@TForm1@$bctr$qqrp18Classes@TComponent	label	dword
	dd	@@$xt$p6TForm1
	dd	1029
	dd	-4
	dd	0
@_$DCAF$@TForm1@$bctr$qqrp18Classes@TComponent	ends
_DATA	ends
_DATA	segment dword public use32 'DATA'
@_$ECTBF$@TForm1@$bctr$qqrp18Classes@TComponent	segment virtual
	align	2
@@_$ECTBF$@TForm1@$bctr$qqrp18Classes@TComponent	label	dword
	dd	0
	dd	-40
	dw	0
	dw	5
	dd	0
	dd	@@_$DCAF$@TForm1@$bctr$qqrp18Classes@TComponent
@_$ECTBF$@TForm1@$bctr$qqrp18Classes@TComponent	ends
_DATA	ends
_TEXT	segment dword public use32 'CODE'
@TForm1@$bctr$qqrp18Classes@TComponent	segment virtual
@@TForm1@$bctr$qqrp18Classes@TComponent	proc	near
?live16385@0:
	?debug L 13
	push ebp
	mov ebp,esp
	add esp,-48
	mov byte ptr [ebp-8],dl
	test dl,dl
	jle       short @1
	call __ClassCreate
@1:
	mov dword ptr [ebp-48],ecx
	mov byte ptr [ebp-41],dl
	mov dword ptr [ebp-4],eax
@2:
	mov eax,offset @@_$ECTBF$@TForm1@$bctr$qqrp18Classes@TComponent
	call @__InitExceptBlockLDTC
	?debug L 14
	mov word ptr [ebp-24],8
	mov ecx,dword ptr [ebp-48]
	xor edx,edx
	mov eax,dword ptr [ebp-4]
	call @@Forms@TForm@$bctr$qqrp18Classes@TComponent
	add dword ptr [ebp-12],16
	?debug L 16
	mov edx,dword ptr [ebp-40]
	mov dword ptr fs:[0],edx
	mov eax,dword ptr [ebp-4]
@4:
@3:
	cmp byte ptr [ebp-41],0
	je        short @5
	call __AfterConstruction
	?debug L 16
@5:
	mov esp,ebp
	pop ebp
	ret 
	?debug L 0
@@TForm1@$bctr$qqrp18Classes@TComponent	endp
@TForm1@$bctr$qqrp18Classes@TComponent	ends
_TEXT	ends
$$BSYMS	segment byte public use32 'DEBSYM'
	db	2
	db	0
	db	0
	db	0
	dw	85
	dw	517
	dw	0
	dw	0
	dw	0
	dw	0
	dw	0
	dw	0
	dd	?patch1
	dd	?patch2
	dd	?patch3
	df	@@TForm1@$bctr$qqrp18Classes@TComponent
	dw	0
	dw	4104
	dw	0
	dw	11
	dw	0
	dw	0
	dw	0
	db	38
	db	64
	db	84
	db	70
	db	111
	db	114
	db	109
	db	49
	db	64
	db	36
	db	98
	db	99
	db	116
	db	114
	db	36
	db	113
	db	113
	db	114
	db	112
	db	49
	db	56
	db	67
	db	108
	db	97
	db	115
	db	115
	db	101
	db	115
	db	64
	db	84
	db	67
	db	111
	db	109
	db	112
	db	111
	db	110
	db	101
	db	110
	db	116
	dw	18
	dw	512
	dw	65532
	dw	65535
	dw	4102
	dw	0
	dw	12
	dw	0
	dw	0
	dw	0
	dw	?patch4
	dw	529
	dw	?patch5
	dd	?live16385@0-@@TForm1@$bctr$qqrp18Classes@TComponent
	dd	?live16385@0-?live16385@0
	dw	17
?patch5	equ	1
?patch4	equ	14
	dw	18
	dw	512
	dw	65488
	dw	65535
	dw	65530
	dw	65535
	dw	13
	dw	0
	dw	0
	dw	0
	dw	?patch6
	dw	529
	dw	?patch7
	dd	?live16385@0-@@TForm1@$bctr$qqrp18Classes@TComponent
	dd	?live16385@0-?live16385@0
	dw	18
?patch7	equ	1
?patch6	equ	14
?patch1	equ	@4-@@TForm1@$bctr$qqrp18Classes@TComponent+15
?patch2	equ	0
?patch3	equ	@4-@@TForm1@$bctr$qqrp18Classes@TComponent
	dw	2
	dw	6
	dw	4
	dw	531
	dw	0
$$BSYMS	ends
_DATA	segment dword public use32 'DATA'
@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject	segment virtual
	align	2
@@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject	label	dword
	dd	@@$xt$17System@AnsiString
	dd	4
	dd	-4
	dd	0
	dd	@@$xt$17System@AnsiString
	dd	4
	dd	-8
	dd	0
	dd	@@$xt$17System@AnsiString
	dd	4
	dd	-12
	dd	@@$xt$17System@AnsiString
	dd	4
	dd	-16
	dd	0
	dd	@@$xt$17System@AnsiString
	dd	4
	dd	-20
	dd	0
	dd	@@$xt$17System@AnsiString
	dd	4
	dd	-24
	dd	0
@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject	ends
_DATA	ends
_DATA	segment dword public use32 'DATA'
@_$ECTDF$@TForm1@Button1Click$qqrp14System@TObject	segment virtual
	align	2
@@_$ECTDF$@TForm1@Button1Click$qqrp14System@TObject	label	dword
	dd	0
	dd	-60
	dw	0
	dw	5
	dd	0
	dd	@@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject
	dw	0
	dw	5
	dd	0
	dd	@@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject+16
	dw	0
	dw	5
	dd	0
	dd	@@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject+32
	dw	0
	dw	5
	dd	0
	dd	@@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject+60
	dw	0
	dw	5
	dd	0
	dd	@@_$DCCF$@TForm1@Button1Click$qqrp14System@TObject+76
@_$ECTDF$@TForm1@Button1Click$qqrp14System@TObject	ends
_DATA	ends
_TEXT	segment dword public use32 'CODE'
@TForm1@Button1Click$qqrp14System@TObject	segment virtual
@@TForm1@Button1Click$qqrp14System@TObject	proc	near
?live16390@0:
	?debug L 19
	push ebp
	mov ebp,esp
	add esp,-276
	push ebx
	push esi
	push edi
	mov dword ptr [ebp-68],edx
	mov dword ptr [ebp-64],eax
@6:
	mov eax,offset @@_$ECTDF$@TForm1@Button1Click$qqrp14System@TObject
	call @__InitExceptBlockLDTC
	?debug L 25
	push 100
	push 0
	lea edx,dword ptr [ebp-176]
	push edx
	call @_memset
	add esp,12
	?debug L 26
	push 100
	push 0
	lea ecx,dword ptr [ebp-276]
	push ecx
	call @_memset
	add esp,12
	?debug L 27
	mov word ptr [ebp-44],8
	lea eax,dword ptr [ebp-4]
	call @@System@AnsiString@$bctr$qqrv
	mov edx,eax
	inc dword ptr [ebp-32]
	mov ecx,dword ptr [ebp-64]
	mov eax,dword ptr [ecx+752]
	call @@Controls@TControl@GetText$qqrv
	lea eax,dword ptr [ebp-4]
	call @@System@AnsiString@Length$xqqrv
	mov dword ptr [ebp-72],eax
	dec dword ptr [ebp-32]
	lea eax,dword ptr [ebp-4]
	mov edx,2
	call @@System@AnsiString@$bdtr$qqrv
	?debug L 28
	mov word ptr [ebp-44],20
	lea eax,dword ptr [ebp-8]
	mov edx,dword ptr [ebp-72]
	call @@System@AnsiString@$bctr$qqri
	inc dword ptr [ebp-32]
	mov edx,dword ptr [eax]
	mov eax,dword ptr [ebp-64]
	mov eax,dword ptr [eax+764]
	call @@Controls@TControl@SetText$qqrx17System@AnsiString
	dec dword ptr [ebp-32]
	lea eax,dword ptr [ebp-8]
	mov edx,2
	call @@System@AnsiString@$bdtr$qqrv
	?debug L 29
	mov word ptr [ebp-44],32
	lea eax,dword ptr [ebp-12]
	call @@System@AnsiString@$bctr$qqrv
	mov edx,eax
	inc dword ptr [ebp-32]
	mov ecx,dword ptr [ebp-64]
	mov eax,dword ptr [ecx+752]
	call @@Controls@TControl@GetText$qqrv
	lea eax,dword ptr [ebp-12]
	call @@System@AnsiString@Length$xqqrv
	push eax
	lea eax,dword ptr [ebp-16]
	call @@System@AnsiString@$bctr$qqrv
	mov edx,eax
	inc dword ptr [ebp-32]
	mov ecx,dword ptr [ebp-64]
	mov eax,dword ptr [ecx+752]
	call @@Controls@TControl@GetText$qqrv
	lea eax,dword ptr [ebp-16]
	call @@System@AnsiString@data$xqqrv
	push eax
	lea edx,dword ptr [ebp-176]
	push edx
	call @_memcpy
	add esp,12
	dec dword ptr [ebp-32]
	lea eax,dword ptr [ebp-16]
	mov edx,2
	call @@System@AnsiString@$bdtr$qqrv
	dec dword ptr [ebp-32]
	lea eax,dword ptr [ebp-12]
	mov edx,2
	call @@System@AnsiString@$bdtr$qqrv
	?debug L 51
	push 4
	push offset s@+4
	lea ecx,dword ptr [ebp-276]
	push ecx
	call @_memcpy
	add esp,12
	?debug L 55
	pushad	
	?debug L 56
	lea	     esi,byte ptr [ebp-176]
	?debug L 57
	lea	     edi,byte ptr [ebp-276]
	?debug L 58
	mov	     ecx,dword ptr [ebp-72]
	?debug L 59
	lea	     edx,dword ptr [ebp-76]
	?debug L 60
	mov	     [edx],ecx
	?debug L 61
	call	    atoA
	?debug L 63
	popad	
	?debug L 65
	jmp @7
	?debug L 66
	atoA	 proc
	?debug L 67
	mov	     edx,0
	?debug L 68
@8:
@again:
	?debug L 69
	cmp	     ecx,edx
	?debug L 70
	je        short @9
	?debug L 71
	mov	     al,byte ptr[esi+edx]
	?debug L 72
	mov	     byte ptr[edi+edx],al+20
	?debug L 73
	inc	     edx
	?debug L 74
	jmp @8
	?debug L 75
@9:
@over_now:
	?debug L 77
	ret	
	?debug L 78
	endp	
	?debug L 79
@7:
@endgame:
	?debug L 82
	mov word ptr [ebp-44],44
	lea edx,dword ptr [ebp-276]
	lea eax,dword ptr [ebp-20]
	call @@System@AnsiString@$bctr$qqrpxc
	inc dword ptr [ebp-32]
	mov edx,dword ptr [eax]
	mov eax,dword ptr [ebp-64]
	mov eax,dword ptr [eax+756]
	call @@Controls@TControl@SetText$qqrx17System@AnsiString
	dec dword ptr [ebp-32]
	lea eax,dword ptr [ebp-20]
	mov edx,2
	call @@System@AnsiString@$bdtr$qqrv
	?debug L 83
	mov word ptr [ebp-44],56
	lea eax,dword ptr [ebp-24]
	mov edx,dword ptr [ebp-76]
	call @@System@AnsiString@$bctr$qqri
	inc dword ptr [ebp-32]
	mov edx,dword ptr [eax]
	mov eax,dword ptr [ebp-64]
	mov eax,dword ptr [eax+768]
	call @@Controls@TControl@SetText$qqrx17System@AnsiString
	dec dword ptr [ebp-32]
	lea eax,dword ptr [ebp-24]
	mov edx,2
	call @@System@AnsiString@$bdtr$qqrv
	?debug L 85
	mov ecx,dword ptr [ebp-60]
	mov dword ptr fs:[0],ecx
	?debug L 85
@10:
	pop edi
	pop esi
	pop ebx
	mov esp,ebp
	pop ebp
	ret 
	?debug L 0
@@TForm1@Button1Click$qqrp14System@TObject	endp
@TForm1@Button1Click$qqrp14System@TObject	ends
_TEXT	ends
$$BSYMS	segment byte public use32 'DEBSYM'
	dw	88
	dw	517
	dw	0
	dw	0
	dw	0
	dw	0
	dw	0
	dw	0
	dd	?patch8
	dd	?patch9
	dd	?patch10
	df	@@TForm1@Button1Click$qqrp14System@TObject
	dw	0
	dw	4121
	dw	0
	dw	14
	dw	0
	dw	0
	dw	0
	db	41
	db	64
	db	84
	db	70
	db	111
	db	114
	db	109
	db	49
	db	64
	db	66
	db	117
	db	116
	db	116
	db	111
	db	110
	db	49
	db	67
	db	108
	db	105
	db	99
	db	107
	db	36
	db	113
	db	113
	db	114
	db	112
	db	49
	db	52
	db	83
	db	121
	db	115
	db	116
	db	101
	db	109
	db	64
	db	84
	db	79
	db	98
	db	106
	db	101
	db	99
	db	116
	dw	18
	dw	512
	dw	65472
	dw	65535
	dw	4102
	dw	0
	dw	15
	dw	0
	dw	0
	dw	0
	dw	?patch11
	dw	529
	dw	?patch12
	dd	?live16390@0-@@TForm1@Button1Click$qqrp14System@TObject
	dd	?live16390@0-?live16390@0
	dw	17
?patch12	equ	1
?patch11	equ	14
	dw	18
	dw	512
	dw	65468
	dw	65535
	dw	65531
	dw	65535
	dw	16
	dw	0
	dw	0
	dw	0
	dw	?patch13
	dw	529
	dw	?patch14
	dd	?live16390@0-@@TForm1@Button1Click$qqrp14System@TObject
	dd	?live16390@0-?live16390@0
	dw	19
?patch14	equ	1
?patch13	equ	14
	dw	18
	dw	512
	dw	65460
	dw	65535
	dw	116
	dw	0
	dw	17
	dw	0
	dw	0
	dw	0
	dw	18
	dw	512
	dw	65464
	dw	65535
	dw	116
	dw	0
	dw	18
	dw	0
	dw	0
	dw	0
	dw	18
	dw	512
	dw	65260
	dw	65535
	dw	4123
	dw	0
	dw	19
	dw	0
	dw	0
	dw	0
	dw	18
	dw	512
	dw	65360
	dw	65535
	dw	4124
	dw	0
	dw	20
	dw	0
	dw	0
	dw	0
?patch8	equ	@10-@@TForm1@Button1Click$qqrp14System@TObject+7
?patch9	equ	0
?patch10	equ	@10-@@TForm1@Button1Click$qqrp14System@TObject
	dw	2
	dw	6
	dw	8
	dw	531
	dw	7
	dw	65248
	dw	65535
$$BSYMS	ends
_DATA	segment dword public use32 'DATA'
@_$DCEF$@Forms@TForm@$bctr$qqrp18Classes@TComponent	segment virtual
	align	2
@@_$DCEF$@Forms@TForm@$bctr$qqrp18Classes@TComponent	label	dword
	dd	@@$xt$p11Forms@TForm
	dd	1029
	dd	-4
	dd	0
@_$DCEF$@Forms@TForm@$bctr$qqrp18Classes@TComponent	ends
_DATA	ends
_DATA	segment dword public use32 'DATA'
@_$ECTFF$@Forms@TForm@$bctr$qqrp18Classes@TComponent	segment virtual
	align	2
@@_$ECTFF$@Forms@TForm@$bctr$qqrp18Classes@TComponent	label	dword
	dd	0
	dd	-40
	dw	0
	dw	5
	dd	0
	dd	@@_$DCEF$@Forms@TForm@$bctr$qqrp18Classes@TComponent
@_$ECTFF$@Forms@TForm@$bctr$qqrp18Classes@TComponent	ends
_DATA	ends
_TEXT	segment dword public use32 'CODE'
@Forms@TForm@$bctr$qqrp18Classes@TComponent	segment virtual
@@Forms@TForm@$bctr$qqrp18Classes@TComponent	proc	near
?live16386@0:
	?debug	T "c:\program files\borland\cbuilder6\include\vcl\Forms.hpp"
	?debug L 930
	push ebp
	mov ebp,esp
	add esp,-48
	mov byte ptr [ebp-8],dl
	test dl,dl
	jle       short @11
	call __ClassCreate
@11:
	mov dword ptr [ebp-48],ecx
	mov byte ptr [ebp-41],dl
	mov dword ptr [ebp-4],eax
@12:
	mov eax,offset @@_$ECTFF$@Forms@TForm@$bctr$qqrp18Classes@TComponent
	call @__InitExceptBlockLDTC
	mov word ptr [ebp-24],8
	mov ecx,dword ptr [ebp-48]
	xor edx,edx
	mov eax,dword ptr [ebp-4]
	call @@Forms@TCustomForm@$bctr$qqrp18Classes@TComponent
	add dword ptr [ebp-12],15
	mov edx,dword ptr [ebp-40]
	mov dword ptr fs:[0],edx
	mov eax,dword ptr [ebp-4]
@14:
@13:
	cmp byte ptr [ebp-41],0
	je        short @15
	call __AfterConstruction
	?debug L 930
@15:
	mov esp,ebp
	pop ebp
	ret 
	?debug L 0
@@Forms@TForm@$bctr$qqrp18Classes@TComponent	endp
@Forms@TForm@$bctr$qqrp18Classes@TComponent	ends
_TEXT	ends
$$BSYMS	segment byte public use32 'DEBSYM'
	dw	90
	dw	517
	dw	0
	dw	0
	dw	0
	dw	0
	dw	0
	dw	0
	dd	?patch15
	dd	?patch16
	dd	?patch17
	df	@@Forms@TForm@$bctr$qqrp18Classes@TComponent
	dw	0
	dw	4125
	dw	0
	dw	21
	dw	0
	dw	0
	dw	0
	db	43
	db	64
	db	70
	db	111
	db	114
	db	109
	db	115
	db	64
	db	84
	db	70
	db	111
	db	114
	db	109
	db	64
	db	36
	db	98
	db	99
	db	116
	db	114
	db	36
	db	113

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -