13.1 int指令
指令格式: int n
指令功能: n 是中断类型码,该指令用于引发中断过程.执行过程如下,
(1) 取得中断类型码 n
(2) 标志寄存器入栈,IF=0,TF=0
(3) CS,IP入栈
(4) (IP)=(n*4),(CS)=(n*4+2)
注:一般情况下,系统将一些具有一定功能的子程序,以中断处理程序的方式提供给应用程序调用.
13.2 编写供应用程序调用的中断例程
注:中断例程,要添加iret做返回.即
pop IP
pop CS
popf
注2:中断例程中用到寄存器要注意保存和恢复
13.3 对int,iret和栈的深入理解
问题:用7ch中断例程完成loop s指令的功能
要点:利用CPU处理中断时会将CS,IP等信息入栈,利用栈上的地址来计算
13.4 BIOS和DOS提供的中断例程
BIOS主要包含以下几部分内容:
(1) 硬件系统的检测和初始化程序
(2) 外部中断和内部中断的中断例程
(3) 用于对硬件设备进行IO操作的中断例程
(4) 其他和硬件系统相关的中断例程
操作系统DOS也提供了中断例程,从操作系统的角度看,DOS的中断例程就是操作系统向程序员提供的编程资源.
和硬件操作相关的DOS中断例程,一般都调用BIOS的中断例程.
这些中断例程都可以直接通过int指令来调用.
13.5 BIOS和DOS中断例程的安装过程
13.6 BIOS中断例程的应用
一般来说,一个供程序调用的中断例程往往包括多个子程序,中断例程内部用传递进来的参数来决定执行哪一个子程序.
BIOS和DOS提供的中断例程,都用ah来传递内部子程序的编号.
如: int 10h
13.7 DOS中断例程应用
例: int 21h
其中:4ch 号功能,程序返回,可以提供返回值作为参数;
实验13 编写,应用中断例程
略