实验十五_安装新的int 9中断例程
assume cs:code
code segment
start: mov ax,cs
mov ds,ax
mov si,offset int9;ds:si指向源地址
mov ax,0
mov es,ax
mov di,204h;es:di指向目的地址
mov cx,offset int9end - offset int9
cld
rep movsb mov ax,es:[9*4]
mov es:[200h],ax
mov ax,es:[9*4+2]
mov es:[202h],ax cli
mov word ptr es:[9*4],204h
mov word ptr es:[9*4+2],0
sti mov ax,4c00h
int 21h
;---------------------------------------------------------------------------
int9: push ax
push es
in al,60h pushf
call dword ptr cs:[200h] cmp al,9EH;9EH是'A'的断码
jne int9ret mov ax,0b800h
mov es,ax
mov cx,2000
mov di,0
int9_s: mov byte ptr es:[di],'A'
mov byte ptr es:[di+1],0CH;高亮红
add di,2
loop int9_s int9ret:pop es
pop ax
iret int9end:nop
code ends
end start
--------------------------------------------------------------------
总结:首先搭建框架: int9中断例程安装 保存原来的int 9中断例程 设置中断向量表 int9 int9end:nop
心得:为了便于程序的调试,写程序时可以先把功能简化,就上述程序来说
可以用在屏幕中间显示一个字符来替代满屏‘A’这样的功能,如果实现了
一个字符的显示,说明程序(除了满屏‘A’部分)其他地方基本上正确
(不一定完全正确,原因很多),这样在把满屏显示‘A’这样的功能添加上
去,完善起程序。
实验十五_安装新的int 9中断例程的更多相关文章
- 汇编试验十五:安装新的int 9中断例程
安装新的int 9中断例程(按'A'键后显示满屏幕的'A') int 9 是外中断,同样,程序编写还是和其他中断例程类似,安装(复制),调用: 不同点是在于,他要从端口读取数据60h, Source ...
- 汇编实验15:安装新的int 9中断例程
汇编实验15:安装新的int 9中断例程 任务 安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,一旦松开后,就显示满屏幕的“A”,其他键照常处理. 预备知识概要 这次实 ...
- 安装新的int 9中断例程2
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 安装新的int 9中断例程
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager
VMware vSphere服务器虚拟化实验十五 vCenter vShield Manager VMware vShield Manager是专为 VMware vCenter Server 集成 ...
- 实验十五 GUI编程练习与应用程序部署
实验十五 GUI编程练习与应用程序部署 实验时间 2018-12-6 一:理论部分 1.Java 程序的打包:编译完成后,程序员将.class 文件压缩打包为 .jar 文件后,GUI 界面序就可以 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十五:FIFO储存模块(同步)
实验十五:FIFO储存模块(同步) 笔者虽然在实验十四曾解释储存模块,而且也演示奇怪的家伙,但是实验十四只是一场游戏而已.至于实验十五,笔者会稍微严肃一点,手动建立有规格的储存模块,即同步FIFO.那 ...
- 实验十四_访问CMOS RAM
编程:以"年/月/日 时:分:秒"的格式,显示当前的日期,时间. 注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系 ...
- 【iCore3 双核心板_FPGA】实验十五:基于USART的ARM与FPGA通信实验
实验指导书及代码包下载: http://pan.baidu.com/s/1c1RbE5E iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
随机推荐
- SQL查询(二)
常用查询技巧 1.获取数据的前3(n)行 ; 2.SQL语句中if语句 在SQL语句中没有直接的if语句,但是有两个函数:DECODE和CASE,他们能够实现if语句的功能 2.1)decode -- ...
- CentOS安装JAVA后JAVA版本不对的问题
今天用CentOS安装JDK,发觉在安装完成后,输入java命令来验证是否安装成功时,出现 Usage: gij [OPTION] ... CLASS [ARGS] ... to i ...
- Java Messages Synchronous and Asynchronous
//The Consumer Class Consumes Messages in a Synchronous Manner public class Consumer { public static ...
- Ajax 填充 前端页面
- phpcms v9 模板调用代码大全
另:每个栏目会对应当前所选模型的三个模板文件: 这些模板文件所在位置:phpcms/templates/default/content/ 目录下,如果想修改模板文件,只需要到此目录下找到对应的模板文 ...
- HAL层Camera模块Dump图片--工作积累
Camera的raw data一般都是YUV420的格式,数据的特点是: YUV 4:2:0采样,每四个Y共用一组UV分量 YUV420格式: 先Y,后V,中间是U.其中的Y是w * h,U和V是w/ ...
- Candies---hdu3159(spfa+差分约束)
题目链接:http://poj.org/problem?id=3159 题意:有n个小孩,m个关系格式是A B C 表示小孩 B 的糖果数最多比小孩A多C个,相当于B-A<=C; 有m个这样的关 ...
- 用Dictionary代替if
public Dictionary<string, System.Drawing.RotateFlipType> dicRFT = new Dictionary<string, Sy ...
- raspberryPi 拍照
调用python的库,学习raspberryPi的摄像头操作方法. 参考链接: https://www.raspberrypi.org/learning/getting-started-with-pi ...
- json和string 之间的相互转换
json和string 之间的相互转换 <script type="text/javascript"> //先认识一下js中json function showInfo ...