汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色

我们都知道int9中断是键盘的按键中断程序,按下键盘触发int9中断,不懂int9中断的请自己去百度查查说明和用法

利用中断任务安装一个新的int 9中断例程,功能:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理。

;任务:安装一个新的int 9中断例程,
;功能:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理。

assume cs:code

stack segment
db 30h dup(0)
stack ends

data segment
db 20h dup(0)
data ends


code segment
start: 

    mov ax,0
    mov es,ax
    mov di,200h
    mov ds,ax
    mov si,[9*4]
    mov cx,4
    cld
    rep movsb
    
    mov ax,cs
    mov ds,ax
    mov si,offset s
    mov cx,offset se - offset s;设置从标号sqrend到标号sqr的转移位移
    cld
    rep movsb
    mov word ptr es:[9*4],200h
    mov word ptr es:[9*4+2],0
    
    mov ax,4c00h
    int 21h
    
    
    s:
    push ax
    push es
    mov ax,0b800h
    mov es,ax
    push cx
    mov cx,2000
    push bx
    mov bx,1
    in al,60h
    cmp al,3bh
    jne s1
    s0:
;    add byte ptr es:[bx],10h
    inc byte ptr es:[bx]
    add bx,2
    loop s0
    s1:
    int 80h
    pop bx
    pop cx
    pop es
    pop ax
    iret
    se:nop
    
    
    mov ax,4c00h
    int 21h


code ends
end start

运行:位使用的win7+masm6.15,所以把上面的代码编译、链接、运行后,在当前cmd窗口输入debug回车,然后按F1键,就可以看到效果了

posted on 2016-01-25 14:11  jack_Meng  阅读(991)  评论(0编辑  收藏  举报

导航