. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->外中断
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验15  [待解决] 回复[ 3次 ]   点击[ 562次 ]  
folkrock
[帖 主]   [ 发表时间:2009-02-13 17:38 ]   [引用]   [回复]   [ top ] 
荣誉值: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
lwbfq
[第1楼]   [ 回复时间:2009-02-14 18:51 ]   [引用]   [回复]   [ top ] 
荣誉值:56
信誉值:0
注册日期:2008-01-19 13:58
支持一下。
qing_liang
[第2楼]   [ 回复时间:2010-03-22 22:26 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-05 21:32
谢谢!把15.5的问题也解决了        mov cx,10h '

rkey: 
        mov ah,0 
        int 16h 
        loop rkey 

让屏幕暂停了.
liuquanhao7232
[第3楼]   [ 回复时间:2010-08-15 19:11 ]   [引用]   [回复]   [ top ] 
荣誉值:8
信誉值:0
注册日期:2010-07-12 08:47
楼主定义的data段并不需要。因为是将原int9例程地址放在了0:200处。
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved