中断是指使微处理器暂时停止工作以执行其他任务, 然后返回其先前任务的条件。中断是需要引起CPU注意的事件或信号。这种暂停使外围设备可以访问微处理器。
每当发生中断时, 处理器都会完成当前指令的执行, 并开始执行中断服务程序(ISR)或中断处理程序。 ISR是一个程序, 它告诉处理器中断发生时该怎么做。执行完ISR之后, 控制权返回到被中断的主例程。
在8086微处理器中, 当微处理器遇到中断时, 将执行以下任务:
- 标志寄存器的值被压入堆栈。这意味着首先将SP(堆栈指针)的值减2, 然后将标志寄存器的值压入堆栈段的存储器地址。
- CS(代码段)的起始存储器地址的值被压入堆栈。
- IP(指令指针)的值被压入堆栈。
- IP是从字位置(中断类型)* 04加载的。
- CS从下一个字位置加载。
- 中断和陷阱标志重置为0。
8086微处理器中存在的各种中断类型如下:
硬件中断–
硬件中断是由任何外围设备通过指定的引脚向微处理器发送信号引起的中断。 8086微处理器中有两个硬件中断。他们是:
- (A)NMI(不可屏蔽中断)–这是一个不可屏蔽的单引脚不可屏蔽硬件中断。它是8086微处理器中最高优先级的中断。执行完该中断后, 将产生一个TYPE 2中断。从字位置00008 H加载IP, 从字位置0000A H加载CS。
- (B)INTR(中断请求)–它提供一个中断请求, 并由I / O端口激活。该中断可以被屏蔽或延迟。这是一个级别触发的中断。它可以接收任何中断类型, 因此IP和CS的值将根据接收到的中断类型而改变。
软件中断–
这些是插入到程序中以生成中断的指令。 8086微处理器中有256个软件中断。这些指令的格式为INT类型, 类型范围为00到FF。起始地址范围为00000 H至003FFH。这是2字节指令。 IP从类型* 04 H加载, CS从下一个地址(类型* 04)+ 02 H加载。一些重要的软件中断是:
- (一种)0型对应于除以零(0)。
- (B)类型1用于单步执行以调试程序。
- (C)2型代表NMI, 用于断电情况。
- (D)类型3代表断点中断。
- (E)类型4是溢出中断。
参考–8085微处理器中断