能力值:
( LV12,RANK:220 )
|
-
-
5 楼
没看到加密的地方
seg000:0100 ;
seg000:0100 ; ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
seg000:0100 ; ※ This file is generated by The Interactive Disassembler (IDA) ※
seg000:0100 ; ※ Copyright (c) 2003 by DataRescue sa/nv, <ida@datarescue.com> ※
seg000:0100 ; ※ Licensed to: Michael Wolski - Personal Use (1-user Standard 07/2003) ※
seg000:0100 ; ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
seg000:0100 ;
seg000:0100 ; File Name : C:\Documents and Settings\Administrator\桌面\DISPLAY.COM
seg000:0100 ; Format : MS-DOS COM-file
seg000:0100 ; Base Address: 0h Range: 100h-2A0h Loaded length: 1A0h
seg000:0100
seg000:0100
seg000:0100 ; ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
seg000:0100
seg000:0100 ; Segment type: Pure code
seg000:0100 seg000 segment byte public 'CODE'
seg000:0100 assume cs:seg000
seg000:0100 assume es:nothing, ss:seg000, ds:seg000
seg000:0100
seg000:0100 ; 〓〓〓〓〓〓〓〓 S U B R O U T I N E 〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
seg000:0100
seg000:0100
seg000:0100 public start
seg000:0100 start proc near
seg000:0100 push ds
seg000:0101 mov ax, 0
seg000:0104 push ax
seg000:0105 push cs
seg000:0106 pop ds
seg000:0107 push ds
seg000:0108 pop es
seg000:0109 assume es:seg000
seg000:0109 push ds
seg000:010A mov ax, 3516h
seg000:010D int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:010D ; AL = interrupt number
seg000:010D ; Return: ES:BX = value of interrupt vector
seg000:010F push es
seg000:0110 pop ds
seg000:0111 mov dx, bx
seg000:0113 mov ax, 2546h
seg000:0116 int 21h ; DOS - SET INTERRUPT VECTOR
seg000:0116 ; AL = interrupt number
seg000:0116 ; DS:DX = new vector to be used for specified interrupt
seg000:0118 pop ds
seg000:0119 mov ds:300h, ss
seg000:011D mov ds:302h, sp
seg000:0121 mov ah, 0Fh
seg000:0123 int 10h ; - VIDEO - GET CURRENT VIDEO MODE
seg000:0123 ; Return: AH = number of columns on screen
seg000:0123 ; AL = current video mode
seg000:0123 ; BH = current active display page
seg000:0125 mov ds:304h, ax
seg000:0128 mov ds:306h, bx
seg000:012C mov ax, 0
seg000:012F mov ds, ax
seg000:0131 mov dx, 46D0h
seg000:0134 mov ax, 3
seg000:0137 int 10h ; - VIDEO - SET VIDEO MODE
seg000:0137 ; AL = mode
seg000:0139 mov ax, 3501h
seg000:013C int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:013C ; AL = interrupt number
seg000:013C ; Return: ES:BX = value of interrupt vector
seg000:013E dec dx
seg000:013F mov es:[bx], dl
seg000:0142 mov ds:4, dx
seg000:0146 not dx
seg000:0148 mov ds:0Ch, dx
seg000:014C push cs
seg000:014D pop es
seg000:014E mov cx, 40h
seg000:0151 xor si, si
seg000:0153 mov di, 400h
seg000:0156 cld
seg000:0157 repne movsw
seg000:0159 mov ah, 6
seg000:015B mov cx, 0
seg000:015E mov dx, 1950h
seg000:0161 mov bx, 0
seg000:0164 int 10h ; - VIDEO - SCROLL PAGE UP
seg000:0164 ; AL = number of lines to scroll window (0 = blank whole window)
seg000:0164 ; BH = attributes to be used on blanked lines
seg000:0164 ; CH,CL = row,column of upper left corner of window to scroll
seg000:0164 ; DH,DL = row,column of lower right corner of window
seg000:0166 push cs
seg000:0167 pop ds
seg000:0168 push cx
seg000:0169 pop ss
seg000:016A mov sp, 80h
seg000:016D mov ax, ds:410h
seg000:0170 mov ds:330h, ax
seg000:0173 mov ax, ds:412h
seg000:0176 mov ds:332h, ax
seg000:0179 mov ax, ds:470h
seg000:017C mov ds:334h, ax
seg000:017F mov ax, ds:472h
seg000:0182 mov ds:336h, ax
seg000:0185 mov ax, 1DCh
seg000:0188 mov ds:410h, ax
seg000:018B mov ds:412h, ds
seg000:018F mov ds:45Ah, ds
seg000:0193 mov ds:472h, ds
seg000:0197 mov ax, 204h
seg000:019A mov cx, 228h
seg000:019D mov ds:458h, ax
seg000:01A0 mov ds:470h, cx
seg000:01A4 xor ax, ax
seg000:01A6 mov cx, 18h
seg000:01A9 mov bx, 1A0h
seg000:01AC
seg000:01AC loc_1AC: ; CODE XREF: start+B0j
seg000:01AC add ax, [bx]
seg000:01AE inc bx
seg000:01AF inc bx
seg000:01B0 loop loc_1AC
seg000:01B2 mov ds:340h, ax
seg000:01B5 mov bx, 47Eh
seg000:01B8 mov cx, 40h
seg000:01BB
seg000:01BB loc_1BB: ; CODE XREF: start+BFj
seg000:01BB push word ptr [bx]
seg000:01BD dec bx
seg000:01BE dec bx
seg000:01BF loop loc_1BB
seg000:01C1 mov ss, ds:300h
seg000:01C5 mov sp, ds:302h
seg000:01C9 mov ax, 7654h
seg000:01CC not ax
seg000:01CE mov bx, ax
seg000:01D0 add ax, ax
seg000:01D2 into
seg000:01D3 jz locret_1DB
seg000:01D5 add bx, bx
seg000:01D7 into
seg000:01D8 call loc_245
seg000:01DB
seg000:01DB locret_1DB: ; CODE XREF: start+D3j
seg000:01DB retn
seg000:01DB start endp ; sp = -6
seg000:01DB
seg000:01DB ; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
seg000:01DC db 83h ; ?
seg000:01DD db 0C4h ; ?
seg000:01DE db 6 ;
seg000:01DF db 0B8h ; ?
seg000:01E0 db 63h ; c
seg000:01E1 db 0Fh ;
seg000:01E2 db 33h ; 3
seg000:01E3 db 6 ;
seg000:01E4 db 40h ; @
seg000:01E5 db 3 ;
seg000:01E6 db 0BEh ; ?
seg000:01E7 db 45h ; E
seg000:01E8 db 2 ;
seg000:01E9 db 0B9h ; ?
seg000:01EA db 2Dh ; -
seg000:01EB db 0 ;
seg000:01EC db 31h ; 1
seg000:01ED db 4 ;
seg000:01EE db 8Bh ; ?
seg000:01EF db 4 ;
seg000:01F0 db 46h ; F
seg000:01F1 db 46h ; F
seg000:01F2 db 0E2h ; ?
seg000:01F3 db 0F8h ; ?
seg000:01F4 db 0B8h ; ?
seg000:01F5 db 3 ;
seg000:01F6 db 0 ;
seg000:01F7 db 0CDh ; ?
seg000:01F8 db 10h ;
seg000:01F9 db 0A1h ; ?
seg000:01FA db 4 ;
seg000:01FB db 3 ;
seg000:01FC db 8Bh ; ?
seg000:01FD db 1Eh ;
seg000:01FE db 6 ;
seg000:01FF db 3 ;
seg000:0200 db 0CDh ; ?
seg000:0201 db 10h ;
seg000:0202 db 0EBh ; ?
seg000:0203 db 41h ; A
seg000:0204 db 6 ;
seg000:0205 db 53h ; S
seg000:0206 db 31h ; 1
seg000:0207 db 0DBh ; ?
seg000:0208 db 8Eh ; ?
seg000:0209 db 0C3h ; ?
seg000:020A db 0BBh ; ?
seg000:020B db 0CFh ; ?
seg000:020C db 46h ; F
seg000:020D db 26h ; &
seg000:020E db 39h ; 9
seg000:020F db 1Eh ;
seg000:0210 db 4 ;
seg000:0211 ; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
seg000:0211
seg000:0211 loc_211: ; CODE XREF: seg000:0250j
seg000:0211 add [si+11h], dh
seg000:0214 push ds
seg000:0215 push cs
seg000:0216 pop ds
seg000:0217 mov bx, 100h
seg000:021A mov cx, 82h
seg000:021D
seg000:021D loc_21D: ; CODE XREF: seg000:0221j
seg000:021D mov [bx], ax
seg000:021F inc bx
seg000:0220 inc bx
seg000:0221 loop loc_21D
seg000:0223 pop ds
seg000:0224 nop
seg000:0225 pop bx
seg000:0226 pop es
seg000:0227 assume es:nothing
seg000:0227 iret
seg000:0227 ; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
seg000:0228 db 1Eh ;
seg000:0229 db 0B8h ; ?
seg000:022A db 0 ;
seg000:022B db 0 ;
seg000:022C db 8Eh ; ?
seg000:022D db 0D8h ; ?
seg000:022E db 0A1h ; ?
seg000:022F db 4 ;
seg000:0230 db 0 ;
seg000:0231 db 3 ;
seg000:0232 db 6 ;
seg000:0233 db 0Ch ;
seg000:0234 db 0 ;
seg000:0235 db 0Eh ;
seg000:0236 db 1Fh ;
seg000:0237 db 0BEh ; ?
seg000:0238 db 45h ; E
seg000:0239 db 2 ;
seg000:023A db 0B9h ; ?
seg000:023B db 30h ; 0
seg000:023C db 0 ;
seg000:023D db 21h ; !
seg000:023E db 4 ;
seg000:023F db 46h ; F
seg000:0240 db 46h ; F
seg000:0241 db 0E2h ; ?
seg000:0242 db 0FAh ; ?
seg000:0243 db 1Fh ;
seg000:0244 db 0CFh ; ?
seg000:0245 ; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
seg000:0245
seg000:0245 loc_245: ; CODE XREF: start+D8p
seg000:0245 cmp ax, [ecx]
seg000:0248 mov ah, 9Fh
seg000:024A mov ax, 0B34h
seg000:024D jns near ptr loc_276+1
seg000:024F cld
seg000:0250 loope loc_211
seg000:0252 add [bx], ch
seg000:0254 hlt
seg000:0255 mov ds:0A012h, al
seg000:0258 push si
seg000:0259 mov ds:36D1h, ax
seg000:025C mov ds:0A010h, al
seg000:025F push sp
seg000:0260 mov ds:30D3h, ax
seg000:0263 mov ds:0A016h, al
seg000:0266 mov ss:32B1h, ax
seg000:026A mov ds:0A014h, al
seg000:026D xor al, 0A3h
seg000:026F stosb
seg000:0270 inc si
seg000:0271 lea cx, [bp+di+4414h]
seg000:0275 sti
seg000:0276
seg000:0276 loc_276: ; CODE XREF: seg000:024Dj
seg000:0276 pop bp
seg000:0278 mov si, 9D09h
seg000:027B fild dword ptr [si]
seg000:027D shl dl, cl
seg000:027F pop ds
seg000:0280 xchg ax, di
seg000:0280 ; ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
seg000:0281 db 68h ; h
seg000:0282 db 35h ; 5
seg000:0283 db 6 ;
seg000:0284 db 0Ah ;
seg000:0285 db 4Eh ; N
seg000:0286 db 12h ;
seg000:0287 db 4Fh ; O
seg000:0288 db 0Ch ;
seg000:0289 db 4Fh ; O
seg000:028A db 3 ;
seg000:028B db 45h ; E
seg000:028C db 4 ;
seg000:028D db 1Ch ;
seg000:028E db 52h ; R
seg000:028F db 14h ;
seg000:0290 db 55h ; U
seg000:0291 db 0Eh ;
seg000:0292 db 1Dh ;
seg000:0293 db 43h ; C
seg000:0294 db 49h ; I
seg000:0295 db 20h ;
seg000:0296 db 21h ; !
seg000:0297 db 0Ah ;
seg000:0298 db 0 ;
seg000:0299 db 73h ; s
seg000:029A db 75h ; u
seg000:029B db 18h ;
seg000:029C db 1Bh ;
seg000:029D db 61h ; a
seg000:029E db 4Ah ; J
seg000:029F db 0 ;
seg000:029F seg000 ends
seg000:029F
seg000:029F
seg000:029F end start
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
seg000:0100 ;
seg000:0100 ; 赏屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
seg000:0100 ; ? This file is generated by The Interactive Disassembler (IDA) ?
seg000:0100 ; ? Copyright (c) 2004 by DataRescue sa/nv, <ida@datarescue.com> ?
seg000:0100 ; ? Licensed to: xxxxxxxxxx, 1 user, std, 01/2004 ?s
seg000:0100 ; 韧屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
seg000:0100 ;
seg000:0100 ; File Name : D:\DISPLAY.COM
seg000:0100 ; Format : MS-DOS COM-file
seg000:0100 ; Base Address: 0h Range: 100h-2A0h Loaded length: 1A0h
seg000:0100
seg000:0100
seg000:0100 ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
seg000:0100
seg000:0100 ; Segment type: Pure code
seg000:0100 seg000 segment byte public 'CODE' use16
seg000:0100 assume cs:seg000
seg000:0100 org 100h
seg000:0100 assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing
seg000:0100
seg000:0100 ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
seg000:0100
seg000:0100
seg000:0100 public start
seg000:0100 start proc near
seg000:0100 push ds
seg000:0101 mov ax, 0
seg000:0104 push ax
seg000:0105 push cs
seg000:0106 pop ds
seg000:0107 push ds
seg000:0108 pop es
seg000:0109 assume es:seg000
seg000:0109 push ds
seg000:010A mov ax, 3516h
seg000:010D int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:010D ; AL = interrupt number
seg000:010D ; Return: ES:BX = value of interrupt vector
seg000:010F push es
seg000:0110 pop ds
seg000:0111 mov dx, bx
seg000:0113 mov ax, 2546h
seg000:0116 int 21h ; DOS - SET INTERRUPT VECTOR
seg000:0116 ; AL = interrupt number
seg000:0116 ; DS:DX = new vector to be used for specified interrupt
seg000:0118 pop ds
seg000:0119 mov word ptr ds:300h, ss
seg000:011D mov ds:302h, sp
seg000:0121 mov ah, 0Fh
seg000:0123 int 10h ; - VIDEO - GET CURRENT VIDEO MODE
seg000:0123 ; Return: AH = number of columns on screen
seg000:0123 ; AL = current video mode
seg000:0123 ; BH = current active display page
seg000:0125 mov ds:304h, ax
seg000:0128 mov ds:306h, bx
seg000:012C mov ax, 0
seg000:012F mov ds, ax
seg000:0131 mov dx, 46D0h
seg000:0134 mov ax, 3
seg000:0137 int 10h ; - VIDEO - SET VIDEO MODE
seg000:0137 ; AL = mode
seg000:0139 mov ax, 3501h
seg000:013C int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:013C ; AL = interrupt number
seg000:013C ; Return: ES:BX = value of interrupt vector
seg000:013E dec dx
seg000:013F mov es:[bx], dl
seg000:0142 mov ds:4, dx
seg000:0146 not dx
seg000:0148 mov ds:0Ch, dx
seg000:014C push cs
seg000:014D pop es
seg000:014E mov cx, 40h
seg000:0151 xor si, si
seg000:0153 mov di, 400h
seg000:0156 cld
seg000:0157 repne movsw
seg000:0159 mov ah, 6
seg000:015B mov cx, 0
seg000:015E mov dx, 1950h
seg000:0161 mov bx, 0
seg000:0164 int 10h ; - VIDEO - SCROLL PAGE UP
seg000:0164 ; AL = number of lines to scroll window (0 = blank whole window)
seg000:0164 ; BH = attributes to be used on blanked lines
seg000:0164 ; CH,CL = row,column of upper left corner of window to scroll
seg000:0164 ; DH,DL = row,column of lower right corner of window
seg000:0166 push cs
seg000:0167 pop ds
seg000:0168 push cx
seg000:0169 pop ss
seg000:016A assume ss:seg000
seg000:016A mov sp, 80h
seg000:016D mov ax, ds:410h
seg000:0170 mov ds:330h, ax
seg000:0173 mov ax, ds:412h
seg000:0176 mov ds:332h, ax
seg000:0179 mov ax, ds:470h
seg000:017C mov ds:334h, ax
seg000:017F mov ax, ds:472h
seg000:0182 mov ds:336h, ax
seg000:0185 mov ax, 1DCh
seg000:0188 mov ds:410h, ax
seg000:018B mov word ptr ds:412h, ds
seg000:018F mov word ptr ds:45Ah, ds
seg000:0193 mov word ptr ds:472h, ds
seg000:0197 mov ax, 204h
seg000:019A mov cx, 228h
seg000:019D mov ds:458h, ax
seg000:01A0 mov ds:470h, cx
seg000:01A4 xor ax, ax
seg000:01A6 mov cx, 18h
seg000:01A9 mov bx, 1A0h
seg000:01AC
seg000:01AC loc_1AC: ; CODE XREF: start+B0j
seg000:01AC add ax, [bx]
seg000:01AE inc bx
seg000:01AF inc bx
seg000:01B0 loop loc_1AC
seg000:01B2 mov ds:340h, ax
seg000:01B5 mov bx, 47Eh
seg000:01B8 mov cx, 40h
seg000:01BB
seg000:01BB loc_1BB: ; CODE XREF: start+BFj
seg000:01BB push word ptr [bx]
seg000:01BD dec bx
seg000:01BE dec bx
seg000:01BF loop loc_1BB
seg000:01C1 mov ss, word ptr ds:300h
seg000:01C5 assume ss:nothing
seg000:01C5 mov sp, ds:302h
seg000:01C9 mov ax, 7654h
seg000:01CC not ax
seg000:01CE mov bx, ax
seg000:01D0 add ax, ax
seg000:01D2 into
seg000:01D3 jz short locret_1DB
seg000:01D5 add bx, bx
seg000:01D7 into
seg000:01D8 call loc_245
seg000:01DB
seg000:01DB locret_1DB: ; CODE XREF: start+D3j
seg000:01DB retn
seg000:01DB start endp ; sp = -6
seg000:01DB
seg000:01DB ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:01DC db 83h ; ?
seg000:01DD db 0C4h ; ?
seg000:01DE db 6
seg000:01DF db 0B8h ; ?
seg000:01E0 db 63h ; c
seg000:01E1 db 0Fh
seg000:01E2 db 33h ; 3
seg000:01E3 db 6
seg000:01E4 db 40h ; @
seg000:01E5 db 3
seg000:01E6 db 0BEh ; ?
seg000:01E7 db 45h ; E
seg000:01E8 db 2
seg000:01E9 db 0B9h ; ?
seg000:01EA db 2Dh ; -
seg000:01EB db 0
seg000:01EC db 31h ; 1
seg000:01ED db 4
seg000:01EE db 8Bh ; ?
seg000:01EF db 4
seg000:01F0 db 46h ; F
seg000:01F1 db 46h ; F
seg000:01F2 db 0E2h ; ?
seg000:01F3 db 0F8h ; ?
seg000:01F4 db 0B8h ; ?
seg000:01F5 db 3
seg000:01F6 db 0
seg000:01F7 db 0CDh ; ?
seg000:01F8 db 10h
seg000:01F9 db 0A1h ; ?
seg000:01FA db 4
seg000:01FB db 3
seg000:01FC db 8Bh ; ?
seg000:01FD db 1Eh
seg000:01FE db 6
seg000:01FF db 3
seg000:0200 db 0CDh ; ?
seg000:0201 db 10h
seg000:0202 db 0EBh ; ?
seg000:0203 db 41h ; A
seg000:0204 db 6
seg000:0205 db 53h ; S
seg000:0206 db 31h ; 1
seg000:0207 db 0DBh ; ?
seg000:0208 db 8Eh ; ?
seg000:0209 db 0C3h ; ?
seg000:020A db 0BBh ; ?
seg000:020B db 0CFh ; ?
seg000:020C db 46h ; F
seg000:020D db 26h ; &
seg000:020E db 39h ; 9
seg000:020F db 1Eh
seg000:0210 db 4
seg000:0211 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0211
seg000:0211 loc_211: ; CODE XREF: seg000:0250j
seg000:0211 add [si+11h], dh
seg000:0214 push ds
seg000:0215 push cs
seg000:0216 pop ds
seg000:0217 mov bx, 100h
seg000:021A mov cx, 82h
seg000:021D
seg000:021D loc_21D: ; CODE XREF: seg000:0221j
seg000:021D mov [bx], ax
seg000:021F inc bx
seg000:0220 inc bx
seg000:0221 loop loc_21D
seg000:0223 pop ds
seg000:0224 nop
seg000:0225 pop bx
seg000:0226 pop es
seg000:0227 assume es:nothing
seg000:0227 iret
seg000:0227 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0228 db 1Eh
seg000:0229 db 0B8h ; ?
seg000:022A db 0
seg000:022B db 0
seg000:022C db 8Eh ; ?
seg000:022D db 0D8h ; ?
seg000:022E db 0A1h ; ?
seg000:022F db 4
seg000:0230 db 0
seg000:0231 db 3
seg000:0232 db 6
seg000:0233 db 0Ch
seg000:0234 db 0
seg000:0235 db 0Eh
seg000:0236 db 1Fh
seg000:0237 db 0BEh ; ?
seg000:0238 db 45h ; E
seg000:0239 db 2
seg000:023A db 0B9h ; ?
seg000:023B db 30h ; 0
seg000:023C db 0
seg000:023D db 21h ; !
seg000:023E db 4
seg000:023F db 46h ; F
seg000:0240 db 46h ; F
seg000:0241 db 0E2h ; ?
seg000:0242 db 0FAh ; ?
seg000:0243 db 1Fh
seg000:0244 db 0CFh ; ?
seg000:0245 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0245
seg000:0245 loc_245: ; CODE XREF: start+D8p
seg000:0245 cmp ax, [ecx]
seg000:0248 mov ah, 9Fh
seg000:024A mov ax, 0B34h
seg000:024D jns short near ptr loc_276+1
seg000:024F cld
seg000:0250 loope loc_211
seg000:0252 add [bx], ch
seg000:0254 hlt
seg000:0255 mov ds:0A012h, al
seg000:0258 push si
seg000:0259 mov ds:36D1h, ax
seg000:025C mov ds:0A010h, al
seg000:025F push sp
seg000:0260 mov ds:30D3h, ax
seg000:0263 mov ds:0A016h, al
seg000:0266 mov ss:32B1h, ax
seg000:026A mov ds:0A014h, al
seg000:026D xor al, 0A3h
seg000:026F stosb
seg000:0270 inc si
seg000:0271 lea cx, [bp+di+4414h]
seg000:0275 sti
seg000:0276
seg000:0276 loc_276: ; CODE XREF: seg000:024Dj
seg000:0276 pop bp
seg000:0278 mov si, 9D09h
seg000:027B fild dword ptr [si]
seg000:027D shl dl, cl
seg000:027F pop ds
seg000:0280 xchg ax, di
seg000:0281 push 635h
seg000:0284 or cl, [bp+12h]
seg000:0287 dec di
seg000:0288 or al, 4Fh
seg000:028A add ax, [di+4]
seg000:028D sbb al, 52h
seg000:028F adc al, 55h
seg000:0291 push cs
seg000:0292 sbb ax, 4943h
seg000:0295 and [bx+di], ah
seg000:0297 or al, [bx+si]
seg000:0299 jnb short near ptr 310h
seg000:029B sbb [bp+di], bl
seg000:029D popa
seg000:029E dec dx
seg000:029E ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:029F db 0
seg000:029F seg000 ends
seg000:029F
seg000:029F
seg000:029F end start
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
这样看舒服些
seg000:0100 ; File Name : D:\DISPLAY.COM
seg000:0100 ; Format : MS-DOS COM-file
seg000:0100 ; Base Address: 0h Range: 100h-2A0h Loaded length: 1A0h
seg000:0100
seg000:0100
seg000:0100 ; 屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯?
seg000:0100
seg000:0100 ; Segment type: Pure code
seg000:0100 seg000 segment byte public 'CODE' use16
seg000:0100 assume cs:seg000
seg000:0100 org 100h
seg000:0100 assume es:nothing, ss:nothing, ds:seg000, fs:nothing, gs:nothing
seg000:0100
seg000:0100 ; 圹圹圹圹圹圹圹?S U B R O U T I N E 圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹圹?
seg000:0100
seg000:0100
seg000:0100 public start
seg000:0100 start proc near
seg000:0100 push ds
seg000:0101 mov ax, 0
seg000:0104 push ax
seg000:0105 push cs
seg000:0106 pop ds
seg000:0107 push ds
seg000:0108 pop es
seg000:0109 assume es:seg000
seg000:0109 push ds
seg000:010A mov ax, 3516h
seg000:010D int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:010D ; AL = interrupt number
seg000:010D ; Return: ES:BX = value of interrupt vector
seg000:010F push es
seg000:0110 pop ds
seg000:0111 mov dx, bx
seg000:0113 mov ax, 2546h
seg000:0116 int 21h ; DOS - SET INTERRUPT VECTOR
seg000:0116 ; AL = interrupt number
seg000:0116 ; DS:DX = new vector to be used for specified interrupt
seg000:0118 pop ds
seg000:0119 mov word ptr ds:300h, ss
seg000:011D mov ds:302h, sp
seg000:0121 mov ah, 0Fh
seg000:0123 int 10h ; - VIDEO - GET CURRENT VIDEO MODE
seg000:0123 ; Return: AH = number of columns on screen
seg000:0123 ; AL = current video mode
seg000:0123 ; BH = current active display page
seg000:0125 mov ds:304h, ax
seg000:0128 mov ds:306h, bx
seg000:012C mov ax, 0
seg000:012F mov ds, ax
seg000:0131 mov dx, 46D0h
seg000:0134 mov ax, 3
seg000:0137 int 10h ; - VIDEO - SET VIDEO MODE
seg000:0137 ; AL = mode
seg000:0139 mov ax, 3501h
seg000:013C int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:013C ; AL = interrupt number
seg000:013C ; Return: ES:BX = value of interrupt vector
seg000:013E dec dx
seg000:013F mov es:[bx], dl
seg000:0142 mov ds:4, dx
seg000:0146 not dx
seg000:0148 mov ds:0Ch, dx
seg000:014C push cs
seg000:014D pop es
seg000:014E mov cx, 40h
seg000:0151 xor si, si
seg000:0153 mov di, 400h
seg000:0156 cld
seg000:0157 repne movsw
seg000:0159 mov ah, 6
seg000:015B mov cx, 0
seg000:015E mov dx, 1950h
seg000:0161 mov bx, 0
seg000:0164 int 10h ; - VIDEO - SCROLL PAGE UP
seg000:0164 ; AL = number of lines to scroll window (0 = blank whole window)
seg000:0164 ; BH = attributes to be used on blanked lines
seg000:0164 ; CH,CL = row,column of upper left corner of window to scroll
seg000:0164 ; DH,DL = row,column of lower right corner of window
seg000:0166 push cs
seg000:0167 pop ds
seg000:0168 push cx
seg000:0169 pop ss
seg000:016A assume ss:seg000
seg000:016A mov sp, 80h
seg000:016D mov ax, ds:410h
seg000:0170 mov ds:330h, ax
seg000:0173 mov ax, ds:412h
seg000:0176 mov ds:332h, ax
seg000:0179 mov ax, ds:470h
seg000:017C mov ds:334h, ax
seg000:017F mov ax, ds:472h
seg000:0182 mov ds:336h, ax
seg000:0185 mov ax, 1DCh
seg000:0188 mov ds:410h, ax
seg000:018B mov word ptr ds:412h, ds
seg000:018F mov word ptr ds:45Ah, ds
seg000:0193 mov word ptr ds:472h, ds
seg000:0197 mov ax, 204h
seg000:019A mov cx, 228h
seg000:019D mov ds:458h, ax
seg000:01A0 mov ds:470h, cx
seg000:01A4 xor ax, ax
seg000:01A6 mov cx, 18h
seg000:01A9 mov bx, 1A0h
seg000:01AC
seg000:01AC loc_1AC: ; CODE XREF: start+B0j
seg000:01AC add ax, [bx]
seg000:01AE inc bx
seg000:01AF inc bx
seg000:01B0 loop loc_1AC
seg000:01B2 mov ds:340h, ax
seg000:01B5 mov bx, 47Eh
seg000:01B8 mov cx, 40h
seg000:01BB
seg000:01BB loc_1BB: ; CODE XREF: start+BFj
seg000:01BB push word ptr [bx]
seg000:01BD dec bx
seg000:01BE dec bx
seg000:01BF loop loc_1BB
seg000:01C1 mov ss, word ptr ds:300h
seg000:01C5 assume ss:nothing
seg000:01C5 mov sp, ds:302h
seg000:01C9 mov ax, 7654h
seg000:01CC not ax
seg000:01CE mov bx, ax
seg000:01D0 add ax, ax
seg000:01D2 into
seg000:01D3 jz short locret_1DB
seg000:01D5 add bx, bx
seg000:01D7 into
seg000:01D8 call near ptr byte_245
seg000:01DB
seg000:01DB locret_1DB: ; CODE XREF: start+D3j
seg000:01DB retn
seg000:01DB start endp ; sp = -6
seg000:01DB
seg000:01DC ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:01DC add sp, 6
seg000:01DF mov ax, 0F63h
seg000:01E2 xor ax, ds:340h
seg000:01E6 mov si, 245h
seg000:01E9 mov cx, 2Dh
seg000:01EC
seg000:01EC loc_1EC: ; CODE XREF: seg000:01F2j
seg000:01EC xor [si], ax
seg000:01EE mov ax, [si]
seg000:01F0 inc si
seg000:01F1 inc si
seg000:01F2 loop loc_1EC
seg000:01F4 mov ax, 3
seg000:01F7 int 10h ; - VIDEO - SET VIDEO MODE
seg000:01F7 ; AL = mode
seg000:01F9 mov ax, ds:304h
seg000:01FC mov bx, ds:306h
seg000:0200 int 10h ; - VIDEO -
seg000:0202 jmp short near ptr byte_245
seg000:0202 ; 哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
seg000:0204 byte_204 db 6, 53h, 31h, 0DBh, 8Eh, 0C3h, 0BBh, 0CFh, 46h, 26h
seg000:0204 db 39h, 1Eh, 4, 0, 74h, 11h, 1Eh, 0Eh, 1Fh, 0BBh, 0, 1
seg000:0204 db 0B9h, 82h, 0, 89h, 7, 2 dup(43h), 0E2h, 0FAh, 1Fh, 90h
seg000:0204 db 5Bh, 7, 0CFh, 1Eh, 0B8h, 2 dup(0), 8Eh, 0D8h, 0A1h
seg000:0204 db 4, 0, 3, 6, 0Ch, 0, 0Eh, 1Fh, 0BEh, 45h, 2, 0B9h, 30h
seg000:0204 db 0, 21h, 4, 2 dup(46h), 0E2h, 0FAh, 1Fh, 0CFh
seg000:0245 byte_245 db 67h, 3Bh, 1, 0B4h, 9Fh, 0B8h, 34h, 0Bh, 79h, 28h, 0FCh
seg000:0245 ; CODE XREF: start+D8p
seg000:0245 ; seg000:0202j
seg000:0245 db 0E1h, 0BFh, 0, 2Fh, 0F4h, 0A2h, 12h, 0A0h, 56h, 0A3h
seg000:0245 db 0D1h, 36h, 0A2h, 10h, 0A0h, 54h, 0A3h, 0D3h, 30h, 0A2h
seg000:0245 db 16h, 0A0h, 36h, 0A3h, 0B1h, 32h, 0A2h, 14h, 0A0h, 34h
seg000:0245 db 0A3h, 0AAh, 46h, 8Dh, 8Bh, 14h, 44h, 0FBh, 8Fh, 0C5h
seg000:0245 db 0BEh, 9, 9Dh, 0DBh, 4, 0D2h, 0E2h, 1Fh, 97h, 68h, 35h
seg000:0245 db 6, 0Ah, 4Eh, 12h, 4Fh, 0Ch, 4Fh, 3, 45h, 4, 1Ch, 52h
seg000:0245 db 14h, 55h, 0Eh, 1Dh, 43h, 49h, 20h, 21h, 0Ah, 0, 73h
seg000:0245 db 75h, 18h, 1Bh, 61h, 4Ah, 0
seg000:0245 seg000 ends
seg000:0245
seg000:0245
seg000:0245 end start
|