我们都知道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键,就可以看到效果了
时间: 2024-10-13 08:45:26