汇编代码 按ESC改变屏幕显示的颜色
assume cs:code
code segment
start:
;保存原来的中断入口
mov ax,0
mov es,ax
mov ax,es:[94]
mov es:[200h],ax
mov ax,es:[94+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改变屏幕显示的颜色相关推荐
- int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色...
;在屏幕中间依次显示'a'~'z',并可以让人看清. ;在显示的过程中,按下Esc键后,改变显示的颜色 assume cs:code stack segment db 128 dup(0) stack ...
- [unity3d][通过代码]改变材质球颜色,动态改变材质球颜色,动态改变模型颜色
unity通过代码改变材质球颜色 gitee地址:https://gitee.com/asiworld csdn博客地址:https://blog.csdn.net/JianShengShuaiest ...
- Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色
Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的: ...
- c++ 代码_C代码对汇编代码中声明的全局符号的访问方式详解
首先声明一点:符号的值是地址,该地址上存储的值才是变量,不明白的话看另一篇文章: "静态链接与动态链接的宏观概述及微观详解". (1)对非数组符号的访问,编译器生成访存指令,要想寻 ...
- GCC如何编译内嵌汇编代码
内核代码绝大部分使用C 语言编写,只有一小部分使用汇编语言编写,例如与特定体系结构相关的代码和对性能影响很大的代码.GCC提供了内嵌汇编的功能,可以在C代码中直接内嵌汇编语言语句,大大方便了程序设计 ...
- Linux下通过设置PS1变量改变bash提示符颜色
我们都知道bash中,可以通过PS1变量改变提示符的颜色.当命令输出较长时,往往不容易第一眼看到输出是从哪里开始的,通过改变改变PS1变量,可以更改bash提示符的颜色,这样在人群中多看了一眼,就能够 ...
- keil4如何将c语言转换成汇编语言_Keil 中关于C语言编译生成汇编代码函数名规则...
在keil 中 C语言的函数有带参数和不带参数之分. 一般的资料里说fun(void)类型的函数不带参数,所以,keil编译器生成的汇编的调用地址(函数名) 为fun.这没有错.事实上,不管C语言的函 ...
- 透明Png黑白图片上色(重新着色、改变成指定颜色)
场景:有时,我们需要给透明Png黑白图片改变成指定颜色(上色). 前提:我们已经做好了带透明通道的PNG图片. 益处:使用此方法,只需要制作一张透明的黑色PNG图片即可,我们需要不同颜色的同样式图片时 ...
- IOS 改变导航栏颜色
替换系统自带的返回箭头 UIImage *image = [[UIImage imageNamed:@"leftCancelWhite"] imageWithRenderingMo ...
最新文章
- Ubuntu安装QT后无法输入中文怎么办?
- 高级特性(4)- 数据库编程
- ASP.NET Url重写
- mvp架构 java_GitHub - AnthonyCoder/MvpForJava: 一个可直接快速引入的 Java 版本的模块化 MVP 框架...
- 【javascript基础】8、闭包
- 工作204:组件未注册
- java 实现超时_如何实现带有超时的Runnable? - java
- 《c#编程语言详解》,C#编程语言详解(第2版)
- EF+MVC+Bootstrap 项目实践 Day11
- 微信公众号内推送模板消息
- 手写字体研究-matlab
- java实现影视创作论坛
- 你想通过创业赚取人生中的第一桶金
- 解决VMware中的Windows Server 2012 R2无法成功安装Hyper-V的问题
- u盘怎么数据恢复?靠这四种解决方法
- 全国计算机一级考试理论部分,全国计算机等级考试一级理论题
- ceph bluestore 磁盘空间管理源码解析
- 网络准入控制产品发展
- Java面向对象封装和继承,阿里正式启动2021届春季校招
- C#,蛇梯问题(Snake and Ladder Problem)的算法与源代码
热门文章
- 学习日记day29 平面设计 字体构图风格
- 谷歌地图导入谷歌地球:制作轨迹与游览
- 云应用系列---云桌面
- java工程加包_向java工程添加jar包
- 正版Xshell+Xftp免费使用,你还在找破解版吗
- Quartz定时调度
- ModuleNotFoundError: No module named ‘keras_applications.resnet_v2‘解决方式
- Java素数求和(1~100)
- 如何用SystemView分析AliOS Things
- 【蓝桥杯】单片机精确延时——软件延时