实验十五_安装新的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 ...
随机推荐
- Latex公式换行、对齐
http://blog.sina.com.cn/s/blog_64827e4c0100vnqu.html 换行后等式对齐 \begin{equation}\begin{aligned}R(S_2)&a ...
- 【转载】Http协议
HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第 ...
- jeecg的cq查询方式
@RequestMapping(params = "datagrid") public void datagrid(TbStudentDepEntity tbStudentD ...
- 使用Reveal
添加Reveal.framework,设置Other link flags 添加Debug为 -ObjC,添加 libz 库 这里介绍 Reveal UI 分析工具的简单使用,至于使用他分析手机 Ap ...
- Mongo命令行中执行CRUD
在命令行中使用mongo自带的shell命令来执行CRUD操作 首先链接到数据库 增 db.qiao.insert({"qq":1}) db.qiao.save({"qq ...
- 关于cocoa框架,你所要知道的一切(苹果官方文档,cocoa框架核心竞争力,必须收藏!)
https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/Accessib ...
- firs tday
1.JVM 解析: 2.JDBC 解析: 3.Spring
- hadoop 2.4 伪分布式模式
1.core-site.xml 在<configuration></configuration>中插入 <property> <name>fs.defa ...
- ArcGIS Engine开发之旅03--ArcGIS Engine中的控件
原文:ArcGIS Engine开发之旅03--ArcGIS Engine中的控件 制图控件,如MapControl.PageLayoutControl,其中MapControl控件主要用于地理数据的 ...
- magento 图片缓存是如何生成的
Varien_Image_Adapter_Gd2 类 ,里面有个save()方法,通过图片格式拼出来的方法 call_user_func_array($this->_getCallback(' ...