汇编学习笔记35

非屏蔽外部中断

当收到NM1传入的中断请求信号时,不管是否处于开中断状态,CPU总是会响应中断。

非屏蔽外部中断主要由电源掉电,存储器出错,或总线奇偶校验错等紧急故障产生,要求CPU及时处理。

 

五、内部中断

CPU内部某个事件引起的中断称为内部中断。内部中断由CPU在执行某些指令时产生,也叫做软中断。内部中断不受中断允许标志IF的控制。

 

1、中断指令INT 引起的中断

格式: INT n

其中n是0~0FFH的立即数,执行后产生一个类型号为n的中断。

例: INT 21H产生一个21H中断,转入对应的中断处理,即转入DOS系统功能服务程序。

MOV AH, 01

INT 21H

输入功能调用。

 

2、CPU遇到特殊情况引起的中断

除法中断,除数为0或商超出了规定的范围,产生一个除法错误中断,中断类型号为0

MOV AX, 1234D

MOV CL, 3

DIV CL

上述代码产生0号中断。为避免中断,应改写:

MOV AX, 1234D

MOV CL, 3

XOR DX, DX

XOR CH, CH

DIV CX

 

溢出中断

使用INT0来检测溢出中断错误。在OF=1时执行。

该指令溢出中断类型号为4.如果OF=0执行该指令不会产生中断。

 

3、用于调试的中断

单步

如果TF=1,每条指令产生一个单步中断。

中断时,TF=0,所以不会以单步方式执行单步处理程序。

通常,由调试工具把TF置为1。单步处理程序中可报告各寄存器当前的内容。

 

断点中断

8086,8088中中断指令INT3执行后产生类型号为3的中断,称为断点中断。

 

六、中断优先级和中断嵌套

优先级:

内部中断 > 非屏蔽中断 > 可屏蔽中断 > 单步中断

中断命令寄存器可改变可屏蔽中断内的设备中断优先级。默认优先级为0~7

 

中断嵌套:

在中断处理程序时,又发生中断,叫做中断嵌套。发生非屏蔽中断时,也会引起中断嵌套。

 

例:

PUSH DS

MOV AX, SEG INT.ROUT

MOV DS, AX

MOV DX, OFFSET INT.ROUT

MOV AL, 9

MOV AH, 25H

INT 21H

POP DS

posted @ 2011-01-04 20:21  杨海龙  阅读(246)  评论(0编辑  收藏  举报