安装新的nt9中断 动态 显示26字母,"ESC"改变颜色
2008-02-29 10:52
471 查看
http://www.asmedu.net/blog/user/postcontent.jsp?neighborId=4526&kindId=4140&postId=11411&readSg=1
安装新的nt9中断 动态 显示26字母,"ESC"改变颜色
;*******显示字母并有延时,接受 'Esc' 按键后改变字符显示颜色******
;去掉了中断处理程序中没有意义的指令语句
;对更改中断向量时刻可能发生的状况作了进一步安全保障 cli ,sti的使用
assume cs:code
stack segment
db 128 dup (0)
stack ends
data segment
dw 0,0
data ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
push es:[9*4]
pop ds:[0]
push es:[9*4+2]
pop ds:[2]
cli
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
sti
mov ax,0b800h
mov es,ax
mov ah,'a'
s:mov es:[160*12+40*2],ah
call delay
inc ah
cmp ah,'z'
jna s
mov ax,0
mov es,ax
push ds:[0]
cli;置屏蔽中断标志位
pop es:[9*4]
push ds;[2]
pop es;[9*4+2] ;将中断向量表中的int 9 中断向量恢复
sti;取消屏蔽
mov ax,4c00h
int 21h
delay:push ax
push dx
mov dx,2000h ;loop 10000000h times
mov ax,0
s1: sub ax,1
sbb dx,0
cmp ax,0
jne s1
cmp dx,0
jne s1
pop dx
pop ax
ret
;---以下是int 9 中断处理程序---------------------
int9:push ax
push bx
push es
in al,60h
pushf
;;;;;
call dword ptr ds:[0] ;调用系统提供的中断处理程序
cmp al,1
jne int9ret
mov ax,0b800h
mov es,ax
inc byte ptr es:[160*12+40*2+1] ;颜色属性
int9ret:pop es
pop bx
pop ax
iret
code ends
end start
安装新的nt9中断 动态 显示26字母,"ESC"改变颜色
;*******显示字母并有延时,接受 'Esc' 按键后改变字符显示颜色******
;去掉了中断处理程序中没有意义的指令语句
;对更改中断向量时刻可能发生的状况作了进一步安全保障 cli ,sti的使用
assume cs:code
stack segment
db 128 dup (0)
stack ends
data segment
dw 0,0
data ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
mov ax,0
mov es,ax
push es:[9*4]
pop ds:[0]
push es:[9*4+2]
pop ds:[2]
cli
mov word ptr es:[9*4],offset int9
mov es:[9*4+2],cs
sti
mov ax,0b800h
mov es,ax
mov ah,'a'
s:mov es:[160*12+40*2],ah
call delay
inc ah
cmp ah,'z'
jna s
mov ax,0
mov es,ax
push ds:[0]
cli;置屏蔽中断标志位
pop es:[9*4]
push ds;[2]
pop es;[9*4+2] ;将中断向量表中的int 9 中断向量恢复
sti;取消屏蔽
mov ax,4c00h
int 21h
delay:push ax
push dx
mov dx,2000h ;loop 10000000h times
mov ax,0
s1: sub ax,1
sbb dx,0
cmp ax,0
jne s1
cmp dx,0
jne s1
pop dx
pop ax
ret
;---以下是int 9 中断处理程序---------------------
int9:push ax
push bx
push es
in al,60h
pushf
;;;;;
call dword ptr ds:[0] ;调用系统提供的中断处理程序
cmp al,1
jne int9ret
mov ax,0b800h
mov es,ax
inc byte ptr es:[160*12+40*2+1] ;颜色属性
int9ret:pop es
pop bx
pop ax
iret
code ends
end start
相关文章推荐
- int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色
- html-编写"改变颜色"、"改变宽高"、"隐藏内容"、"显示内容"、"取消设置"的函数
- 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】
- 汇编题目:在屏幕中间显示a-z的所有字母,按ESC键改变字符颜色
- win7安装QT时出现"无法定位程序输入点_except1于动态链接库MSVCR120.dll"时的解决办法
- wpf datagrid 单元格颜色 根据条件改变颜色 根据表datatable动态显示datagrid内容
- 在屏幕中间显示,按ESC键后改变字符的颜色
- WinCE CAB Manager制作的安装包提示"您已经安装的程序可能无法正常显示,因为它是专门用于上一版本Windows Mobile 软件的"
- 安装无线网卡后,显示"网络电缆被拔出"?
- 汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色
- 动态改变Menu item的显示字体内容
- vscode 报错 未找到Git。请安装Git,或在"git.path" 设置中配置
- "以前进行的程序安装创建了挂起的文件操作。运行程序之前,必须重新起动计算机。"的解决办法
- 玩魔兽争霸无故退出 提示框显示"0x21101663"指令引用的"0x02704acc"内存该存不能为"read" 确定就会终止程序
- DHTML技术演示---动态设置表格行间隔显示、表格排序、鼠标悬停样式改变
- jQuery动态改变图片显示大小
- 解决在安装openstack swift过程中遇到的"liberasurecode[XX]: liberasurecode_backend_open: dynamic linking error"
- 在DElphi中的DataGrid怎样使它显示的行间隔改变颜色?就向.NET中同名控件一样。
- 动态改变actionbar的menu菜单MenuItem的显示
- 鼠标选择动态改变网页背景颜色的JS代码