中国开发网: 论坛: 程序员情感CBD: 贴子 145006
haitao
int 00h的入口(记得int 00是重启机器啊???)
;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹
;
; External Entry Point
;
;圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹

90B9:5BCA int_00h_entry proc far ; xref 90B9:5C0E
90B9:5BCA 2E: A1 5BF9 mov ax,word ptr cs:[5BF9h] ; (90B9:5BF9=9C16h)
90B9:5BCE 8E D8 mov ds,ax
90B9:5BD0 B8 0003 mov ax,3
90B9:5BD3 36: C7 06 26D0 5CCA mov word ptr ss:data_933e,5CCAh ; (9F41:26D0=3636h)
90B9:5BDA loc_1988: ; xref 90B9:5DBD, 5DD4, 6086
90B9:5BDA ?0 push ax
90B9:5BDB E8 01BC call sub_249 ; (5D9A)
90B9:5BDE E8 0450 call sub_255 ; (6031)
90B9:5BE1 36: 81 3E 2BA8 D6D6 cmp word ptr ss:data_937e,0D6D6h ; (9F41:2BA8=0)
90B9:5BE8 75 07 jne loc_1989 ; Jump if not equal
90B9:5BEA 58 pop ax
90B9:5BEB 50 push ax
90B9:5BEC 36: FF 16 2BAC call word ptr ss:data_938e ; (9F41:2BAC=0)
90B9:5BF1 loc_1989: ; xref 90B9:5BE8
90B9:5BF1 B8 00FF mov ax,0FFh
90B9:5BF4 50 push ax
90B9:5BF5 FF 16 26D0 call word ptr ds:data_794e ; (9C16:26D0=5CD1h)
90B9:5BF9 16 push ss
90B9:5BFA 9C pushf ; Push flags
90B9:5BFB 00 B8 3500 add ds:data_860e[bx+si],bh ; (9C16:3500=0)
90B9:5BFF CD 21 int 21h ; DOS Services ah=function 00h
; terminate, cs=progm seg prefx
90B9:5C01 89 1E 26FA mov ds:data_798e,bx ; (9C16:26FA=0)
90B9:5C05 8C 06 26FC mov word ptr ds:data_798e+2,es ; (9C16:26FC=90B9h)
90B9:5C09 0E push cs
tcpip.lst Sourcer v6.51 7-Jun- 5 10:14 am Page 403

90B9:5C0A 1F pop ds
90B9:5C0B B8 2500 mov ax,2500h
90B9:5C0E 鶥A 5BCA mov dx,offset int_00h_entry
90B9:5C11 CD 21 int 21h ; DOS Services ah=function 25h
; set intrpt vector al to ds:dx
90B9:5C13 16 push ss
90B9:5C14 1F pop ds
90B9:5C15 83 3E 2BB8 00 cmp word ptr ds:data_939e,0 ; (9F41:2BB8=7E7Eh)
90B9:5C1A 74 36 je loc_1991 ; Jump if equal
90B9:5C1C 8C 0E 2BBA mov word ptr ds:data_939e+2,cs ; (9F41:2BBA=7Eh)
90B9:5C20 8C 0E 2BC2 mov word ptr ds:data_942e+2,cs ; (9F41:2BC2=0)
90B9:5C24 8E 06 270E mov es,ds:data_935e ; (9F41:270E=0)
90B9:5C28 26: 8B 36 002C mov si,es:data_4e ; (0000:002C=54h)
90B9:5C2D C5 06 2BBC lds ax,dword ptr ds:data_941e ; (9F41:2BBC=0) Load seg:offset ptr
90B9:5C31 8C DA mov dx,ds
90B9:5C33 33 DB xor bx,bx ; Zero register
90B9:5C35 36: FF 1E 2BB8 call dword ptr ss:data_939e ; (9F41:2BB8=7E7Eh)
90B9:5C3A 73 05 jnc loc_1990 ; Jump if carry=0
90B9:5C3C 16 push ss
90B9:5C3D 1F pop ds
90B9:5C3E E9 0179 jmp loc_2010 ; (5DBA)
90B9:5C41 loc_1990: ; xref 90B9:5C3A
90B9:5C41 36: C5 06 2BC0 lds ax,dword ptr ss:data_942e ; (9F41:2BC0=0) Load seg:offset ptr
90B9:5C46 8C DA mov dx,ds
90B9:5C48 BB 0003 mov bx,3
90B9:5C4B 36: FF 1E 2BB8 call dword ptr ss:data_939e ; (9F41:2BB8=7E7Eh)
90B9:5C50 16 push ss
90B9:5C51 1F pop ds
90B9:5C52 loc_1991: ; xref 90B9:5C1A
90B9:5C52 8E 06 270E mov es,ds:data_935e ; (9F41:270E=0)
90B9:5C56 26: 8B 0E 002C mov cx,es:data_4e ; (0000:002C=54h)
90B9:5C5B E3 3E jcxz loc_1996 ; Jump if cx=0
90B9:5C5D 8E C1 mov es,cx
90B9:5C5F 33 FF xor di,di ; Zero register
90B9:5C61 loc_1992: ; xref 90B9:5C7A
90B9:5C61 ?6: 80 3D 00 cmp byte ptr es:[di],0
90B9:5C65 74 34 je loc_1996 ; Jump if equal
90B9:5C67 B9 000D mov cx,0Dh
90B9:5C6A 鶥E 26EC mov si,data_934e ; (9F41:26EC=0)
90B9:5C6D F3/ A6 repe cmpsb ; Rep zf=1+cx >0 Cmp [si] to es:[di]
90B9:5C6F 74 0B jz loc_1993 ; Jump if zero
90B9:5C71 B9 7FFF mov cx,7FFFh
90B9:5C74 33 C0 xor ax,ax ; Zero register
90B9:5C76 F2/ AE repne scasb ; Rep zf=0+cx >0 Scan es:[di] for al
90B9:5C78 75 21 jnz loc_1996 ; Jump if not zero
90B9:5C7A EB E5 jmp short loc_1992 ; (5C61)
90B9:5C7C loc_1993: ; xref 90B9:5C6F
90B9:5C7C 06 push es
90B9:5C7D 1E push ds
90B9:5C7E 07 pop es
90B9:5C7F 1F pop ds
90B9:5C80 8B F7 mov si,di
90B9:5C82 鶥F 2717 mov di,data_936e ; (9F41:2717=0)
90B9:5C85 B1 04 mov cl,4
90B9:5C87 loc_1994: ; xref 90B9:5C97
90B9:5C87 鶤C lodsb ; String [si] to al
90B9:5C88 2C 41 sub al,41h ; 'A'
tcpip.lst Sourcer v6.51 7-Jun- 5 10:14 am Page 404

90B9:5C8A 72 0D jc loc_1995 ; Jump if carry Set
90B9:5C8C D2 E0 shl al,cl ; Shift w/zeros fill
90B9:5C8E 92 xchg dx,ax
90B9:5C8F AC lodsb ; String [si] to al
90B9:5C90 2C 41 sub al,41h ; 'A'
90B9:5C92 72 05 jc loc_1995 ; Jump if carry Set
90B9:5C94 0A C2 or al,dl
90B9:5C96 AA stosb ; Store al to es:[di]
90B9:5C97 EB EE jmp short loc_1994 ; (5C87)
90B9:5C99 loc_1995: ; xref 90B9:5C8A, 5C92
90B9:5C99 16 push ss
90B9:5C9A 1F pop ds
90B9:5C9B loc_1996: ; xref 90B9:5C5B, 5C65, 5C78
90B9:5C9B 鶥B 0004 mov bx,offset data_932 ; (9F41:0004=0)
90B9:5C9E loc_1997: ; xref 90B9:5CB5
90B9:5C9E 80 A7 2717 BF and byte ptr ds:data_936e[bx],0BFh ; (9F41:2717=0)
90B9:5CA3 B8 4400 mov ax,4400h
90B9:5CA6 CD 21 int 21h ; DOS Services ah=function 44h
; IOctl-0 get info dx, bx=handl
90B9:5CA8 72 0A jc loc_1998 ; Jump if carry Set
90B9:5CAA F6 C2 80 test dl,80h
90B9:5CAD 74 05 jz loc_1998 ; Jump if zero
90B9:5CAF 80 8F 2717 40 or byte ptr ds:data_936e[bx],40h ; (9F41:2717=0) '@'
90B9:5CB4 loc_1998: ; xref 90B9:5CA8, 5CAD
90B9:5CB4 4B dec bx
90B9:5CB5 79 E7 jns loc_1997 ; Jump if not sign
90B9:5CB7 BE 2BC4 mov si,2BC4h
90B9:5CBA 鶥F 2BC4 mov di,data_944e ; (9F41:2BC4=0)
90B9:5CBD E8 00C7 call sub_248 ; (5D87)
90B9:5CC0 BE 2BC4 mov si,2BC4h
90B9:5CC3 鶥F 2BC4 mov di,data_944e ; (9F41:2BC4=0)
90B9:5CC6 E8 00AF call sub_247 ; (5D78)
90B9:5CC9 C3 retn
int_00h_entry endp
我的blog:http://szhaitao.blog.hexun.com & http://www.hoolee.com/user/haitao
--以上均为泛泛之谈--
不尽牛人滚滚来,无边硬伤纷纷现 人在江湖(出来的),哪能不挨刀(总归是要的)
网络对话,歧义纷生;你以为明白了对方的话,其实呢?

您所在的IP暂时不能使用低版本的QQ,请到:http://im.qq.com/下载安装最新版的QQ,感谢您对QQ的支持和使用

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录