汇编题目:在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   jack_Meng  阅读(995)  评论(0编辑  收藏  举报

编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩