汇编语言(王爽第三版)实验15安装新的int 9中断例程
(2017-04-28 08:34:40)
标签:
汇编王爽it教育 |
分类: 汇编语言(王爽第三版)实验 |
实验15 安装新的int 9中断例程
程序分析:
【1】这个程序是个中断例程的安装程序,还是老样子,在0:200处安装复制新的中断例程机器码,并设置中断向量表的入口地址为0:200。
【2】将原来的int
【3】先编写一个中断程序:(就叫int9)
A的通码是:1EH,断码是:1EH+80H=9EH
汇编代码如下:
;------
;程序名称:int9(新的)
;功能:中断例程,当按下A键,松开时,屏幕显示满屏的A。
;入口参数:无
;返回值:无
;-------
int9:
Awrite: mov byte
ptr es:[bx], 41H
int9ret:pop cx
【4】最后写个安装程序,将新编写的int 9中断例程写入到0:200处开始的内存,其中[200H]和[202H]存放原来的例程的入口地址。
assume cs:code
code segment
start:
;------装载的例程
;程序名称:int9(新的)
;功能:中断例程,当按下A键,松开时,屏幕显示满屏的A。
;入口参数:无
;返回值:无
;-------
int9:
int9end:
code ends
end start
程序分析:
【1】不像前面章节中的中断例程,安装完毕后可以测试下。这个程序依然不能测试。自己体会吧。只有安装了DOS系统下才能测试。
【2】临时存储原来int9中断例程的中断向量的空间在代码段中的[200H]~[203H]中,我们一般不在代码段中存储数据。代码段只是存储CPU执行的代码。
【3】此程序可谓是一体的,测试程序和安装程序都在一个程序段内,没有了原来上面章节中介绍的例程装载程序。将中断例程直接写到了code段中。
【4】在命令提示符窗口中,可以运行此程序,但不能使用int 9中断程序。也就是说在程序中从a到z变化过程中,我们不能按任何键(会调用中断int9的,而且是新的中断例程),由于中此程序中断向量表不能正常更新,故int9程序调用时出错!
【5】理解这个程序吧,除非我们处在DOS环境中。其实玩汇编就是在DOS下的,写写操作系统啦,编个程序啦。