📄 tdinfo2.inc
字号:
l073a proc near
cmp si,es:[28h]
jb @@1
jmp l0751
@@1: ret
l073a endp
l0745 proc near
cmp si,es:[28h]
jae @@1
jmp l0751
@@1: stc
ret
l0745 endp
l0751 proc near
push cx si di es
lea bx,TypeSwitch
call ChooseType
jnz @@2
cmp d3caa,0
jne @@1
call word ptr cs:[bx+3]
jmp short @@2
@@1: mov CurName.Offs,si
mov CurName.Segm,es
mov CurSymbol.Offs,di
mov CurSymbol.Segm,es
call word ptr cs:[bx+1]
jc @@2
les si,CurName
call StoreName
@@2: pop es di si cx
ret
l0751 endp
ProcessConst proc near
mov d3ce8.B0,5
mov bx,es:[di+2]
mov di,es:[di]
mov es,es:[bx]
mov CurType.Offs,di
mov CurType.Segm,es
mov al,es:[di]
les si,CurSymbol
add si,4
cmp al,7
je @@5
cmp al,9
jne @@1
mov al,es:[si]
xor ah,ah
inc ax
jmp short @@2
@@1: cmp al,10
jne @@3
mov ax,10
@@2: mov d3cdc,ax
mov d3cde.Offs,si
mov d3cde.Segm,es
mov ax,Cnt.DataCount
mov d3cd8.W0,ax
mov d3cd8.W2,0
jmp short @@4
@@3: mov d3cdc,0
mov ax,es:[si]
mov d3cd8.W0,ax
mov ax,es:[si+2]
mov d3cd8.W2,ax
@@4: call l101e
call StoreData
clc
ret
@@5: stc
ret
ProcessConst endp
ProcessType proc near
mov d3ce8.B0,6
mov bx,es:[di+2]
mov di,es:[di]
mov es,es:[bx]
mov CurType.Offs,di
mov CurType.Segm,es
xor ax,ax
mov d3cd8.W0,ax
mov d3cd8.W2,ax
call l0b84
cmp Phase,100h
jne @@1
call l082c
@@1: call l101e
clc
ret
ProcessType endp
l082c proc near
push es di
mov cx,es:[di+4]
and cx,7fffh
call StartBuf
mov di,d3cb8
mov ax,8
cwd
dec cx
mul cx
add di,ax
mov ax,Cnt.NameCount
mov es:[di+1],ax
pop di es
mov cl,es:[di]
cmp cl,3
jne @@1
mov es:[di+1ch],ax
@@1: ret
l082c endp
ProcessVar proc near
@@1: mov al,es:[di].vsFlags
test al,vfAlias
jz @@2
mov bx,es:[di].vsLink.Segm
mov di,es:[di].vsLink.Offs
mov es,es:[bx]
jmp ProcessVar
@@2: cmp al,vfConst
ja @@4
mov bx,es:uhDataMap
jne @@3
mov bx,es:uhConstMap
@@3: add bx,es:[di].vsMap
cmp es:[bx].smAddr,-1
je @@5
@@4: call l0b1d
les di,CurSymbol
mov bx,es:[di].vsType.Segm
mov di,es:[di].vsType.Offs
mov es,es:[bx]
mov CurType.Offs,di
mov CurType.Segm,es
call l0b84
call l101e
clc
ret
@@5: stc
ret
ProcessVar endp
ProcessProc proc near
mov al,es:[di]
test al,2
jnz @@3
mov bx,es:[di+2]
add bx,es:[0ch]
mov ah,es:[bx+2]
test ah,4
jz @@4
cmp word ptr es:[bx],0
je @@3
mov cx,8000h
test ah,8
jnz @@1
or cx,4000h
or cx,es:[bx+6]
@@1: mov d3cd8.W2,cx
mov si,es:[bx+4]
add si,es:[14h]
mov ax,es:[si]
mov cx,Cnt.NameCount
or ax,ax
jz @@2
mov d3cd8.W0,ax
cmp ax,cx
jb @@5
@@2: mov d3cd8.W0,cx
mov es:[si],cx
add si,1
call StoreName
jmp short @@5
@@3: stc
ret
@@4: mov dx,es:[bx+6]
mov bx,es:[bx+4]
add bx,es:[0eh]
mov cx,es:[bx]
cmp cx,-1
je @@3
add cx,dx
mov d3cd8.W0,cx
mov cx,es:[2ch]
mov d3cd8.W2,cx
@@5: xor cl,cl
test ah,2
jz @@6
add cl,20h
@@6: test al,88h
jnz @@7
or cl,8
@@7: add cl,10h
test al,4
jz @@8
add cl,80h
@@8: mov d3ce8.B0,cl
call l0a5d
call l1057
clc
ret
ProcessProc endp
l0958 dw 2
dw 130h,l02a1-3
dw 138h,l02aa-3
l0962 proc near
test d3caa,8101h
jz @@2
mov d3ce8.B0,0
lea si,l0958
segcs lodsw
mov cx,ax
@@1: segcs lodsw
mov bx,ax
add bx,es:[0ch]
mov dx,es:[bx+6]
mov bx,es:[bx+4]
add bx,es:[0eh]
mov ax,es:[bx]
cmp ax,-1
je @@2
add ax,dx
mov d3cd8.W0,ax
mov ax,es:[2ch]
mov d3cd8.W2,ax
push cx es
call l10ac
push cs
pop es
segcs lodsw
push si
mov si,ax
call StoreName
pop si es cx
loop @@1
call StoreFuncType
@@2: ret
l0962 endp
l09b8 proc near
cmp d3caa,0
jne @@1
ret
@@1: push si bx di es
mov si,es:[si].trSymbol
mov di,si
call SkipName
mov CurName.Offs,di
mov CurName.Segm,es
mov CurSymbol.Offs,si
mov CurSymbol.Segm,es
mov d3cec,0
test es:[si].psFlags,pfMethod
jz @@2
inc d3cec
@@2: mov bx,es:[si].psType.ptResult.Segm
mov cx,bx
mov di,es:[si].psType.ptResult.Offs
or cx,di
jz @@6
mov es,es:[bx]
mov CurType.Offs,di
mov CurType.Segm,es
cmp Phase,1
jne @@5
cmp es:[di].tdType,ttString
jne @@3
mov d3ce8.B0,3
les di,CurSymbol
call GetProcStackSize
mov ax,dx
jmp short @@4
@@3: mov d3ce8.B0,2
mov ax,es:[di].tdSizeOf
neg ax
les di,CurSymbol
mov bx,es:[di].psProcMap
add bx,es:uhProcMap
test byte ptr es:[bx].pmFlags,2
jz @@4
sub ax,2
@@4: mov d3cd8.W0,ax
mov d3cd8.W2,0
@@5: call l101e
les si,CurName
call StoreName
@@6: pop es di bx si
ret
l09b8 endp
l0a5d proc near
test d3caa,100h
jnz @@1
ret
@@1: mov al,es:[di]
mov bx,es:[0ch]
add bx,es:[di+2]
mov ah,es:[bx+2]
test al,4
jz @@2
mov cl,7
jmp short @@3
@@2: mov cl,1
test al,1
jz @@3
mov cl,5
@@3: cmp word ptr es:[di+4],0
je @@4
or cl,40h
@@4: test ah,20h
jz @@5
or cl,80h
@@5: mov ah,cl
mov bx,es:[di+12h]
mov cx,bx
mov di,es:[di+10h]
or cx,di
jz @@6
mov es,es:[bx]
mov bx,es:[di+4]
and bx,7fffh
les di,CurSymbol
test al,10h
jnz @@7
mov al,23h
mov dx,4
call l1118
jmp short @@11
@@6: les di,CurSymbol
test al,10h
jz @@8
mov bx,1
@@7: mov al,2dh
and ah,7
mov dx,4
call l1118
les bx,CurSymbol
call l0729
mov cx,es:[bx]
les di,CurSymbol
mov bx,es:[di+8]
mov di,es:[di+4]
mov ax,es:[di+4]
and ax,7fffh
mov dx,1000h
call StoreType
jmp short @@11
@@8: mov ax,1ch
cmp word ptr es:[di+4],0
jne @@9
inc ax
inc ax
@@9: test byte ptr es:[di],1
jz @@10
inc ax
@@10: mov bx,di
call l0729
mov es:[bx+2],ax
@@11: ret
l0a5d endp
l0b1d proc near
test d3caa,1
jz @@2
push bx
lea bx,l028c
and al,0dfh
segcs xlat
mov d3ce8.B0,al
lea bx,l0293
mov d3cee,al
call ChooseType
mov ax,es:[di+1]
call word ptr cs:[bx+1]
pop bx
cmp d3cee,0
jnz @@1
add ax,es:[bx]
@@1: mov d3cd8.W0,ax
mov d3cd8.W2,dx
@@2: ret
l0b1d endp
l0b54 proc near
mov dx,DataStart
ret
l0b54 endp
l0b59 proc near
xor dx,dx
test byte ptr es:[di],20h
jz @@1
or d3ce8.B0,8
@@1: ret
l0b59 endp
l0b67 proc near
mov dx,es:[di+3]
ret
l0b67 endp
l0b6c proc near
xor dx,dx
test d3cec,1
jz @@1
cmp ax,6
je @@2
@@1: or d3ce8.B0,8
inc d3ced
@@2: ret
l0b6c endp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -