微机原理与接口技术——中断系统

2023-12-19 21:10:52

一、中断指令概念

要求:掌握CPU在执行中断指令后,会执行哪些操作

前言:在掌握这些操作之前,我们必须先了解几个名词

1、中断类型码

为了区别各种不同的中断,微机系统给每一个中断分配了一个中断号n,即中断类型码,其取值范围是0~255
微机系统可以处理256种中断,在这256个中断中,imtel在它各种微处理器中都保留了前32个(031)为系统所专用,后224个可由用户设定。

2、中断向量

定义:实模式下,进入中断子程序的入口地址,再准确一点就是,指向中断服务子程序的第一条指令
它由2部分组成:

  • 服务程序所在代码段的段基址:2个字节
  • 服务程序入口的偏移地址:2个字节‘

3、中断向量表

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
解释:中断向量的地址怎么找?4*n,n为字段类型码,(就是在类型码后面加两个零)。

简述接收到中断指令后操作

1、利用4*n,即利用中断类型码找到中断向量的第一个单元地址,一个中断向量占有四个字节。
2、找到的中断向量,即为中断服务子程序的入口地址,取出,注意先取出取出的IP,是偏移地址,后取出两个单元是DS,是段基址。(这里要尤其注意
在这里插入图片描述

3、取出中断向量的入口地址,即可找到中断服务子程序,执行。

二、8086中断指令

开中断指令:STI

功能:使F寄存器中I标志置1,CPU处于开中断状态。

关中断指令:CLI

功能:使得F寄存器中I标志置0,CPU处于关中断状态。

软件中断指令:INT n

n为中断类型码,n为0~255之间有定义的无符号整数。
功能:无条件转向n型中断服务子程序。

中断返回指令 IRET

功能:依次从栈顶弹出6个元素IP,CS,F。如果栈顶是INT n的断口地址,则执行IRET,返回断点,否则不能。
在这里插入图片描述

三、微机系统中断分类

在这里插入图片描述
那么如何区分?
区别点:

  • 软件中断:(INT n
  • 可屏蔽中断(INTR):(08-0F / 70-77)
  • 非屏蔽中断(NMI):02H
  • 异常

四、CPU响应可屏蔽与非屏蔽中断的条件

响应可屏蔽中断条件

  1. INTR引脚有中断请求,NMI引脚没有中断请求,系统没有DMA请求;
  2. CPU当前指令执行完毕;
  3. CPU处于开中断状态,即标志寄存器的中断允许标志置1.

响应非屏蔽中断条件

  1. NMI引脚有中断请求,系统没有DMA请求;
  2. CPU当前指令执行完毕

上面两种响应条件,大家有没有发现第一条都是先看看其他的是否有中断请求,这是为什么?
原因:中断请求优先级 DMA>NMI>INTR

五、8259A结构

1片8259A中断控制器可以管理8级中断;
在这里插入图片描述
级联:
在这里插入图片描述

这里注意
屏蔽:用OR运算符,该位置1,其他置0
开放:用AND运算符,该位置0,其它为0

六、硬件中断与软件中断

两者区别:

  • 中断的引发方式不同
  • CPU获取中断类型码的方式不同(分为8259和INT n)
  • CPU响应的条件不同
  • 中断处理程序的结束方式不同

七、微机系统可屏蔽硬件中断

1、系统分配的8259口地址

在这里插入图片描述

2、中断结束命令

在这里插入图片描述
在这里插入图片描述

3、日时钟中断

ICH型

若日时钟中断定义位1CH型,服务程序结束前不需要向主8259A发送结束命令。

08H

若用户定时中断位08H型,服务程序前需要先向主8059A发送中断结束命令。

MOV AL,20H
OUT 20H,AL

4、用户中断

0AH型

若用户中断定义位0A型,服务程序结束后只向主8259A送结束命令。

71H型

若用户中断定义位71型,服务程序结束后分别向主、从8259A各送结束命令。
在这里插入图片描述

MOV AL,20H
OUT 20H,AL
OUT 0A0H,AL

5、用户中断图解

在这里插入图片描述

用户中断请求从ISA总线B4端子(IRQ 9)引入,经过主8259,从8259二级中断管理,最后由主8259向cpu提中断。
注意:只有从8259 IMR1置0,主8259IMR2置0,其中断请求方能送到CPU。

6、应用编程

在这里插入图片描述

文章来源:https://blog.csdn.net/qq_64131064/article/details/135057849
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。