. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
主题 : :  实验15  [待解决] 回复[ 3次 ]   点击[ 564次 ]  
folkrock
[帖 主] [ 发表时间:2009-02-13 17:38 ] 
荣誉值:0
信誉值:0
注册日期:2008-03-30 11:10
assume cs:code,ds:data

data segment
        dw 0,0
data ends
        
code segment

start:
        mov ax,cs
        mov ds,ax
        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
        sti
        
        mov cx,10h
rkey:
        mov ah,0
        int 16h
        loop rkey

        push es:[200h]
        pop es:[9*4]
        push es:[202h]
        pop es:[9*4+2]
        
        mov ax,4c00h
        int 21h

                        
int9:
        push ax
        push es
        push di
        push cx

        in al,60h
                
        pushf
        call dword ptr cs:[200h]
        
        cmp al,9eh
        jne int9ret
        
        mov ax,0b800h
        mov es,ax
        mov di,0
        
        mov cx,2000
showa:
        mov byte ptr es:[di],'A'
        add di,2
        loop showa

int9ret:
        pop cx
        pop di
        pop es
        pop ax
        iret

int9end:
        nop        
        
code ends

end start
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved