我是靠谱客的博主 明亮缘分,最近开发中收集的这篇文章主要介绍汇编语言(王爽)15章编写int9中断例程:输入f1改变全屏字体颜色,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关键步骤:

  1. 保存中断向量表int9的地址到changeColor代码的data区
  2. 把changeColor代码写进中断向量表
  3. 把int9的地址设置为中断向量表里changeColor代码的地址

程序运行后,按F1依旧可以改变屏幕字体颜色

assume cs:code,ds:data
data segment
db 16 dup(0)
data ends
code segment
start:
mov ax,0
mov es,ax
mov di,200h
mov ax,code
mov ds,ax
mov si,offset dataStart
mov ax,es:[4*9]
mov ds:[si],ax
mov ax,es:[4*9+2]
mov ds:[si+2],ax
mov si,offset changeColor
mov cx,offset end1-offset changeColor
cld
rep movsb
cli
mov word ptr es:[4*9],200h
mov word ptr es:[4*9+2],0
sti
mov ax,4c00h
int 21h
changeColor:
jmp short codeStart
dataStart:
db 8 dup(0)
codeStart:
push cx
push di
push ax
push es
in al,60h
cmp al,3bh
;//F1的扫描码
jnz there
mov cx,2000
mov di,1
s:
;//奇数地址的位置全是颜色的值
mov ax,0b800h
mov es,ax
inc byte ptr es:[di]
add di,2
loop s
there:
pushf
mov ax,0
mov es,ax
mov di,offset dataStart-offset changeColor
call dword ptr es:[200h+di]
pop es
pop ax
pop di
pop cx
iret
end1:
code ends
end start

最后

以上就是明亮缘分为你收集整理的汇编语言(王爽)15章编写int9中断例程:输入f1改变全屏字体颜色的全部内容,希望文章能够帮你解决汇编语言(王爽)15章编写int9中断例程:输入f1改变全屏字体颜色所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部