| 
 | 
 
 
 楼主 |
发表于 2015-11-15 20:09:03
|
显示全部楼层
 
 
 
擦,我要报警了,又打了一遍却过了,求解释 
assume cs:codesg 
 
stack segment 
        db 128 dup(0) 
stack ends 
 
codesg segment 
start:  mov ax,stack 
                mov ss,ax 
                mov sp,128 
                 
                push cs 
                pop ds 
                 
                mov si,offset int9 
                mov ax,0 
                mov es,ax 
                mov di,204h 
                mov cx,offset int9end - offset int9         
                cld 
                rep movsb 
                 
                push es:[9*4] 
                pop es:[200h] 
                push es:[9*4+2] 
                pop es:[202h] 
                 
                cli 
                mov word ptr es:[9*4],204h 
                mov word ptr es:[9*4+2],0 
                 
                mov ax,4c00h 
                int 21h 
                 
int9:   push ax 
                push es 
                push bx 
                push cx 
                 
                mov bx,0 
                mov es,bx 
                 
                pushf 
                call dword ptr es:[200h] 
                 
                in al,60h 
                cmp al,3bh 
                jne int9ret 
                 
                mov ax,0b800h 
                mov es,ax 
                mov bx,1 
                mov cx,2000 
                 
        s:        inc byte ptr es:[bx] 
                add bx,2 
                loop s 
                 
int9ret:pop cx 
                pop bx 
                pop es 
                pop ax 
                iret 
int9end:nop 
 
codesg ends 
end start 
 |   
 
 
 
 |