assume cs:code
code segment
start:
;保存原来的中断入口
mov ax,0
mov es,ax
mov ax,es:[94]
mov es:[200h],ax
mov ax,es:[9
4+2]
mov es:[202h],ax

;将自己编写的中断程序送入0:204h
mov ax,cs
mov ds,ax
mov si,offset int9
mov di,204h
mov cx,offset int9_end - offset int9
cld
rep movsb;修改中断向量表(不加cli sti的话万一在修改中断向量表的途中发生了中断就会引发错误)
cli
mov word ptr es:[9*4],204h
mov word ptr es:[9*4+2],0
sti;在屏幕中间显示'a'-'z'
mov ax,0b800h
mov es,ax
mov ah,'a'display:mov es:[160*12+40*2],ahcall delayinc ahcmp ah,'z'jna display;将原来的中断入口装回以方便下次继续使用
cli
mov ax,0
mov es,ax
mov ax,es:[200h]
mov es:[9*4],ax
mov ax,es:[202h]
mov es:[9*4+2],ax
stimov ax,4c00h
int 21h;手动延迟
delay:push axpush dxmov dx,4hmov ax,0delay_s:sub ax,1sbb dx,0cmp ax,0jne delay_scmp dx,0jne delay_spop dxpop axret;自己的中断处理程序
int9:push axpush bxpush es;1.读取60h端口中的输入in al,60h;2.调用原始的int9 中断处理我们处理不了的细节;a.取中断类型码;b.标志寄存器入栈,IF = 0,TF = 0pushfpushfpop axand ah,11111100bpush axpopf;c.cs,ip入栈;d.IP = n*4,CS = n*4+2mov bx,0mov es,bxcall dword ptr es:[200h];3.看看是不是ESC键,如果是,就改变颜色cmp al,01hjne int9_retmov bx,0b800hmov es,bxinc byte ptr es:[160*12+40*2+1]int9_ret:pop espop bxpop axiret
int9_end:nop

code ends
end start

自己敲的代码,运行按下ESC不会改变颜色,不知道哪错了。。。。。

汇编代码 按ESC改变屏幕显示的颜色相关推荐

  1. int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色...

    ;在屏幕中间依次显示'a'~'z',并可以让人看清. ;在显示的过程中,按下Esc键后,改变显示的颜色 assume cs:code stack segment db 128 dup(0) stack ...

  2. [unity3d][通过代码]改变材质球颜色,动态改变材质球颜色,动态改变模型颜色

    unity通过代码改变材质球颜色 gitee地址:https://gitee.com/asiworld csdn博客地址:https://blog.csdn.net/JianShengShuaiest ...

  3. Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色

    Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的: ...

  4. c++ 代码_C代码对汇编代码中声明的全局符号的访问方式详解

    首先声明一点:符号的值是地址,该地址上存储的值才是变量,不明白的话看另一篇文章: "静态链接与动态链接的宏观概述及微观详解". (1)对非数组符号的访问,编译器生成访存指令,要想寻 ...

  5. GCC如何编译内嵌汇编代码

    内核代码绝大部分使用C  语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码.GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计 ...

  6. Linux下通过设置PS1变量改变bash提示符颜色

    我们都知道bash中,可以通过PS1变量改变提示符的颜色.当命令输出较长时,往往不容易第一眼看到输出是从哪里开始的,通过改变改变PS1变量,可以更改bash提示符的颜色,这样在人群中多看了一眼,就能够 ...

  7. keil4如何将c语言转换成汇编语言_Keil 中关于C语言编译生成汇编代码函数名规则...

    在keil 中 C语言的函数有带参数和不带参数之分. 一般的资料里说fun(void)类型的函数不带参数,所以,keil编译器生成的汇编的调用地址(函数名) 为fun.这没有错.事实上,不管C语言的函 ...

  8. 透明Png黑白图片上色(重新着色、改变成指定颜色)

    场景:有时,我们需要给透明Png黑白图片改变成指定颜色(上色). 前提:我们已经做好了带透明通道的PNG图片. 益处:使用此方法,只需要制作一张透明的黑色PNG图片即可,我们需要不同颜色的同样式图片时 ...

  9. IOS 改变导航栏颜色

    替换系统自带的返回箭头 UIImage *image = [[UIImage imageNamed:@"leftCancelWhite"] imageWithRenderingMo ...

最新文章

  1. Ubuntu安装QT后无法输入中文怎么办?
  2. 高级特性(4)- 数据库编程
  3. ASP.NET Url重写
  4. mvp架构 java_GitHub - AnthonyCoder/MvpForJava: 一个可直接快速引入的 Java 版本的模块化 MVP 框架...
  5. 【javascript基础】8、闭包
  6. 工作204:组件未注册
  7. java 实现超时_如何实现带有超时的Runnable? - java
  8. 《c#编程语言详解》,C#编程语言详解(第2版)
  9. EF+MVC+Bootstrap 项目实践 Day11
  10. 微信公众号内推送模板消息
  11. 手写字体研究-matlab
  12. java实现影视创作论坛
  13. 你想通过创业赚取人生中的第一桶金
  14. 解决VMware中的Windows Server 2012 R2无法成功安装Hyper-V的问题
  15. u盘怎么数据恢复?靠这四种解决方法
  16. 全国计算机一级考试理论部分,全国计算机等级考试一级理论题
  17. ceph bluestore 磁盘空间管理源码解析
  18. 网络准入控制产品发展
  19. Java面向对象封装和继承,阿里正式启动2021届春季校招
  20. C#,蛇梯问题(Snake and Ladder Problem)的算法与源代码

热门文章

  1. 学习日记day29 平面设计 字体构图风格
  2. 谷歌地图导入谷歌地球:制作轨迹与游览
  3. 云应用系列---云桌面
  4. java工程加包_向java工程添加jar包
  5. 正版Xshell+Xftp免费使用,你还在找破解版吗
  6. Quartz定时调度
  7. ModuleNotFoundError: No module named ‘keras_applications.resnet_v2‘解决方式
  8. Java素数求和(1~100)
  9. 如何用SystemView分析AliOS Things
  10. 【蓝桥杯】单片机精确延时——软件延时