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

📄 tdinfo4.inc

📁 Turbo Pascal 6.0编译器源码
💻 INC
字号:
l101e	proc	near
	test	d3caa,1
	jz	@@2
	cmp	Phase,1
	jne	@@1
	les	di,CurType
	mov	cx,es:[di].tdNext
	and	cx,7fffh
	mov	ax,Cnt.NameCount
	call	StartBuf
	stosw
	mov	ax,cx
	stosw
	mov	ax,d3cd8.Offs
	stosw
	mov	ax,d3cd8.Segm
	stosw
	mov	al,d3ce8.B0
	stosb
	call	StopBuf
@@1:	inc	Cnt.SymbolCount
@@2:	ret
l101e	endp

l1057	proc	near
	test	d3caa,1
	jz	@@4
	les	bx,CurSymbol
	cmp	Phase,0
	jne	@@1
	call	l0729
	mov	ax,Cnt.SymbolCount
	mov	es:[bx],ax
	jmp	short @@3
@@1:	cmp	Phase,1
	jne	@@3
	call	l0729
	mov	ax,Cnt.NameCount
	mov	es:[bx+4],ax
	mov	ax,bx
	mov	cx,es:[bx+2]
	or	d3ce8.B0,20h
@@2:	call	StartBuf
	stosw
	mov	ax,cx
	stosw
	mov	ax,d3cd8.Offs
	stosw
	mov	ax,d3cd8.Segm
	stosw
	mov	al,d3ce8.B0
	stosb
	call	StopBuf
@@3:	inc	Cnt.SymbolCount
@@4:	ret
l10ac  	label	near
	test	d3caa,1
	jz	@@4
	cmp	Phase,1
	jne	@@3
	mov	ax,Cnt.NameCount
	mov	cx,Cnt.TypeCount
	jmp	@@2
l1057	endp

StoreData	proc	near
	test	d3caa,4000h
	jz	@@2
	mov	cx,d3cdc
	jcxz	@@2
	cmp	Phase,4000h
	jne	@@1
	call	StartBuf
	push	ds
	lds	si,d3cde
	rep	movsb
	pop	ds
	call	StopBuf
	mov	cx,d3cdc
@@1:	add	Cnt.DataCount,cx
@@2:	ret
StoreData	endp

l10f1	proc	near
	test	d3caa,100h
	jz	@@2
	cmp	Phase,100h
	jnz	@@1
	call	l1169
@@1:	mov	ax,es:[di+4]
	and	ax,8000h
	or	ax,Cnt.TypeCount
	mov	es:[di+4],ax
	inc	Cnt.TypeCount
@@2:	ret
l10f1	endp

l1118	proc	near
	test	d3caa,100h
	jz	@@2
	cmp	Phase,100h
	jne	@@1
	call	l1169
@@1:	mov	ax,Cnt.TypeCount
	push	es bx
	mov	bx,di
	call	l0729
	mov	es:[bx+2],ax
	pop	bx es
	inc	Cnt.TypeCount
@@2:	ret
l1118	endp

StoreFuncType	proc	near
	test	d3caa,100h
	jz	@@2
	cmp	Phase,100h
	jne	@@1
	push	es ds
	call	StartBuf
	lea	si,l02b3
	push	cs
	pop	ds
	mov	cx,8
	rep	movsb
	pop	ds
	call	StopBuf
	pop	es
@@1:	inc	Cnt.TypeCount
@@2:	ret
StoreFuncType	endp

l1169	proc	near
	push	es di
	mov	cl,ah
	call	StartBuf
	stosb
	xor	ax,ax
	stosw
	mov	ax,dx
	stosw
	mov	al,cl
	stosb
	mov	ax,bx
	stosw
	call	StopBuf
	pop	di es
	ret
l1169	endp

StoreType	proc	near
	test	d3caa,100h
	jz	@@2
	cmp	Phase,100h
	jne	@@1
	push	es di
	call	StartBuf
	stosw
	mov	ax,bx
	stosw
	mov	ax,cx
	stosw
	mov	ax,dx
	stosw
	call	StopBuf
	pop	di es
@@1:	inc	Cnt.TypeCount
@@2:	ret
StoreType	endp

StoreMember	proc	near
	mov	al,80h
	xor	cx,cx
	xor	bx,bx
_StoreMember	label near
	test	d3caa,200h
	jz	@@2
	cmp	Phase,200h
	jne	@@1
	push	es di
	call	StartBuf
	stosb
	mov	ax,bx
	stosw
	mov	ax,cx
	stosw
	call	StopBuf
	pop	di es
@@1:	inc	Cnt.MemberCount
@@2:	ret
StoreMember	endp

PatchMember	proc	near
	cmp	Phase,200h
	jne	@@1
	call	StartBuf
	or	byte ptr es:[di-5],80h
@@1:	ret
PatchMember	endp

StoreClass	proc	near
	test	d3caa,400h
	jz	@@2
	cmp	Phase,400h
	jne	@@1
	push	es di ax
	mov	ax,es:[di+4]
	and	ax,8000h
	or	ax,Cnt.ClassCount
	mov	es:[di+4],ax
	pop	ax
	mov	si,es:[di+1ch]
	call	StartBuf
	stosw
	mov	ax,bx
	stosw
	mov	ax,cx
	stosw
	mov	ax,si
	stosw
	mov	ax,dx
	stosw
	mov	al,d3ce6.B1
	stosb
	call	StopBuf
	pop	di es
@@1:	inc	Cnt.ClassCount
@@2:	ret
StoreClass	endp

StoreParent	proc	near
	test	d3caa,800h
	jz	@@2
	cmp	Phase,800h
	jne	@@1
	call	StartBuf
	stosw
	call	StopBuf
@@1:	inc	Cnt.ParentCount
@@2:	ret
StoreParent	endp

StoreSourceFile	proc	near
	test	d3caa,4
	jz	@@2
	cmp	Phase,4
	jne	@@1
	push	es ds es
	mov	ax,Cnt.NameCount
	call	StartBuf
	pop	ds
	stosw
	mov	ax,[si+3]
	stosw
	mov	ax,[si+5]
	stosw
	pop	ds es
	call	StopBuf
@@1:	mov	ax,Cnt.SourceFileCount
	mov	es:[si+1],ax
	inc	Cnt.SourceFileCount
@@2:	ret
StoreSourceFile	endp

l127d	proc	near
	xor	dx,dx
	call	l066a
	mov	cx,dx
	jcxz	@@5
	add	Cnt.LineNumberCount,cx
	mov	ax,4
	cwd
	mul	cx
	call	GetMem
	push	es di ds
	mov	bx,es:[di]
	add	bx,es:[si+4]
	mov	dx,es:[si+6]
	mov	cx,es:[si+8]
	add	si,0ah
	push	es
	call	StartBuf
	pop	ds
@@1:	lodsb
	or	al,al
	js	@@2
	cbw
	jmp	short @@3
@@2:	and	al,7fh
	mov	ah,al
	lodsb
@@3:	or	ax,ax
	jz	@@4
	add	ax,bx
	push	ax
	mov	ax,dx
	stosw
	mov	ax,bx
	stosw
	pop	bx
@@4:	inc	dx
	loop	@@1
	pop	ds
	call	StopBuf
	pop	di es
@@5:	ret
l127d	endp

StoreCorrel	proc	near
	test	d3caa,80h
	jz	@@2
	cmp	Phase,80h
	jne	@@1
	push	es di bx
	add	bx,es:[18h]
	mov	bx,es:[bx+1]
	call	StartBuf
	mov	ax,Cnt.XPEHCount
	stosw
	mov	ax,bx
	stosw
	mov	ax,Cnt.LineNumberCount
	stosw
	mov	ax,dx
	stosw
	call	StopBuf
	pop	bx di es
@@1:	inc	Cnt.CorrelCount
	add	Cnt.LineNumberCount,dx
@@2:	ret
StoreCorrel	endp

⌨️ 快捷键说明

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