第五章 8086的中断系统
8086-6-中断
8086-6-中断中断(8086)中断就是打断处理器当前的执⾏流程,去执⾏⼀些和当前⼯作不相⼲的指令,执⾏完之后,还可以返回到原来的程序流程继续执⾏。
就好⽐你在打游戏突然⽼板来电话了,你不得不先停⽌打游戏然后来处理这件更为重要的事件,然后打完电话之后继续打游戏。
中断的⼀些概念:中断号:由于CPU需要通过对不同类型的中断进⾏不同处理,所以每种类型的中断都被统⼀编号,这称为中断类型号、中断向量或者中断号。
Intel处理器允许256 个中断,中断号的范围是0~255中断源:中断信号的来源,或者说产⽣中断的设备,被称为中断源。
中断嵌套:当⼀个中断事件正在处理时,如果来了⼀个优先级更⾼的中断事件时,允许暂时中⽌当前的中断处理,先为优先级较⾼的中断事件服务,这称为中断嵌套。
实模式下的中断向量表(Interrupt Vector Table,IVT):所谓中断处理,其实就是处理器要执⾏⼀段与该中断有关的程序(指令)你也可以将其当作⼀个函数。
处理器可以识别256 个中断,那么理论上就需要256 段代码。
这些代码实际存放的位置并不重要,重要的是,在实模式下,处理器要求将它们的⼊⼝点也就是起始地址集中存放到内存中从物理地址0x00000 开始,到0x003ff 结束,共1KB 的空间内,这就是所谓的中断向量表。
每个中断的⼊⼝点地址在中断向量表中占2 个字,分别是中断处理代码的偏移地址和段地址。
中断0的⼊⼝点位于物理地址0x00000 处,也就是逻辑地址0x0000:0x0000;中断1 的⼊⼝点位于物理地址0x00004 处,即逻辑地址0x0000:0x0004;其他中断⼊⼝点地址以此类推。
中断分类:中断⼤致上可以分为硬件中断和软件中断(简称为软中断)。
顾名思义,硬件中断由硬件来提供,⽐如说:CPU,⿏标键盘等。
⽽软件键盘由内部的代码来定义。
硬件中断:硬件中断还可以分为外部硬件中断和内部硬件中断,外部硬件中断是指除CPU以外的硬件对应的中断,⽽内部硬件中断是内部CPU对应的中断。
中断系统
• (4)中断返回 •
4.4.2 BIOS调用
• IBM PC系列机在只读存储器中提供了BIOS 基本的输入输出系统,它占用系统板上8K字节的 ROM区,又称为ROM BIOS。它为用户程序和系 统程序提供主要外设的控制功能,即系统加电自 检、引导装入及对键盘、磁盘、磁带、显示器、 打印机、异步串行通信口等控制。计算机系统软 件就是利用这些基本的设备驱动程序,完成各种 功能操作。每个功能模块的入口地址都在中断矢 量表中,通过软中断指令INT n可以直接调用。n =8~1FH是中断类型号,每个类型号n对应一种I/ O设备的中断调用,每个中断调用又以功能号区分 控制功能。
• (4)4号系统功能调用-异步通信输出(从串口 输出字符) • 此调用的功能是系统将从异步通信口(默认为 COM1)输出一个字符(或者ASCII码)。 • 入口参数:被输出的字符的ASCII码送入DL中。 • 例如:现要将“$”这个符号通过异步串行通信口 输出,指令序列如下: • MOV DL,’$’ • MOV AH,04H • IN 21H
2. 中断过程
•
中断的处理过程分为4步:中断请求、中断响应、中 断处理、中断返回。 • (1)中断请求 • 程序执行过程中,不同的中断源根据程序运行情况 发出不同的中断请求,例如,当除数为0或商值超过所能 表示的范围时产生一个除法出错中断请求,外设需要和 CPU传输数据,可通过8259向CPU的INTR端发出可屏蔽 中断请求。 •
•
1. 系统功能调用的方法
• 要完成系统功能调用,基本按如下步骤: • l 将入口参数送到指定寄存器中; • l 子程序功能号送入AH寄存器中; • l 使用INT 21H指令。
2. 常用的几种系统功能调用
• (1)1号系统功能调用-键盘输入并回显 • 此调用的功能是系统扫描键盘并等待键盘输 入一个字符,有键按下时,先检查是否是Ctrl+ Break键,若是则将字符的键值(ASCII码)送入 AL寄存器中,并在屏幕上显示该字符。 • 此调用没有入口参数。
中断概念8086
8086中断响应时序
第一个中断响应总线周期
CLK T1 T2 T3 T4
第二个中断响应总线周期 T1 T2 T3 T4
ALE
INTA*
AD7~AD0
TYPE
总结:中断操作的5个步骤:
(1) (2) (3) (4) (5) 取中断类型号 计算中断向量指针 取中断向量,偏移地址送IP,段地址送CS 转入中断处理程序 返回到断点
指令/CPU 启 动 的
软件中断(内部)
硬件中断(外部)
INTn 指令
非屏蔽中断请求 (2)
NMI 中 断 逻 辑 INTR
INT3 断点 中断
INTO 溢出 中断 OF=1 (4) 单步 中断 TF=1 (1) 除数为 0 中断 (0)
中 断 控 制 器
可 屏 蔽 中 断 请 求
(3)
8259A
2.设置新中断向量: PUSH DS MOV AX, SEIN MOV DS, AX ; 新中断向量段地址放DS MOV DX, OFIN ;新中断向量偏移地址放DX MOV AL, N ;利用原中断类型码 MOV AH, 25H INT 21H ; 设置新的中断向量 POP DS 3.恢复原中断向量
NMI中断请求输入线上输入 用中断指令使CPU响应中断
中断类型
可屏蔽中断
CPU响应中断的方式
开中断指令(IF=1) 响应 关中断指令(IF=0) 屏蔽INTR上来的中断请求 CPU必须予以响应,不能由软件指令屏蔽
非屏蔽中断
软件中断
CPU只要执行该指令,即完成相应的中断功能
8086中断向量
• 中断向量与中断向量表 中断向量:每种中断处理程序的首地址 称为中断向量。 中断向量表:8086将内存最低地址的1K 单元作为中断向量表,存放256种中断处 理程序的入口地址,每个地址占4字节。 中断向量表的分配如下图所示:
《微机原理》8086与PC(2-2)
许临时开放对低优先级中断源的服务
8259A的工作方式(续)
中断结束方式
中断自动结束方式:ISR中在响应时自动置1的位在进
入中断服务程序后自动清0
一般中断结束方式:在全嵌套方式下,EOI命令中不
指定结束的中断级,约定结束ISR中的最高优先级中 断,对应位将被复位
中断向量表的构成
中断向量表:把所有中断源的中断向量集中在
一起,形成中断向量表
8086在内存中地址为00000H~003FFH的 存储区内建立中断向量表,共存放256个中断向 量,每个向量占4个字节,IP在低地址单元、 CS在高地址单元
此表的查询索引为中断类型号
中断类型号及其获取
中断类型号:系统分配给每个中断源的代
为I/O设备服务
中断服务程序执行 中断返回(IRET)
断点和FLAGS从 堆栈中弹出(断点恢复)
恢复现场
给中断控制器发中 断结束(EOI)命令
回到中断前运行 的程序继续执行
中断传送流程
返回
8259A芯片
可编程中断控制器8259A主要功能为:
(1)对8个外部中断源进行管理,具有8级优 先权控制,通过级连可扩展至64级优先权控制。
五、8253/8254定时/计数器
主要功能
3个独立的16位计数器 每个计数器可以按二进制或BCD码计数 计数速率可达2MHz(8254-2达10MHz) 每个计数器有6种工作方式,可编程设置和改
变 输入输出引脚与TTL电平兼容
8253内部结构图
计数器结构
8253有三个独立的计数器(计数通道)
计数初值寄存器(16位)
先读写最低有效字节再
读写最高有效字节
中断系统 计算机原理
统板上RAM奇偶错,I/O通道奇偶错和8087异常中断。
中断屏蔽寄存器
(IMR)
计算机原理讲义
8259内部结构说明
※ 内部结构说明 IRR — 中断请求寄存器,保存 8个输入端IR0~IR7的中断申请状态,输入可 高电平有效,也可上升沿有效; ISR — 中断服务寄存器,保存CPU正在处理的中断请求; IMR — 中断屏蔽寄存器,对中断申请进行屏蔽控制;
操作命令寄存器组: OCW1~OCW3 INT 中断申请输出,高电平有效,可连接8086 INTR引脚 /INTA 中断响应输入,接收8086发出的中断响应信号,有效时8259应输 出中断类型码
计算机原理讲义
※ 内部结构说明
D7~D0 双向三态数据线,传送数据 /RD 读信号,低电平有效
CS WR RD /CS 片选信号,低有效,给8259分配地 D7 D6 址 D5 D4 A0 用于选择8259内部不同的寄存器。 D3 D2 CAS2~CAS0 级联信号线,当8259为主 D1 D0 片时为输出,从片时为输入 CAS0 CAS1 SP/EN 在非缓冲工作方式时,用作输入, GND
计算机原理讲义
8086 中断结构
二. 软件中断
1. 除法溢出中断( DIV和IDIV)(INT 0)
若除数为0或商超过寄存器所能表达的范围,则产生类型为0的软件中断
2. 单步中断 (INT 1) 若TF=1,则CPU每执行完一条指令后便产生类型码为1的软件中断 3. 执行 INT 指令引起的中断 (INT n) 执行INT n指令则会引起中断类型码为n的软件中断 4. 执行 INTO 指令引起的中断(INT 4) 若OF=1,则指令INTO引起中断类型码为4的软件中断
第五章 中断系统
第一讲:第五章中断系统回顾:微机系统的层次结构,CPU、主机、接口电路及外部设备之间的结构关联,输入/输出的一般概念。
本讲重点:微机系统主机与外部设备之间的数据传送,包括I/O端口的寻址方式,输入/输出的传送控制方式。
讲授内容:5. 1 输入/输出数据的传输控制方式一、输入/输出的一般概念1.引言输入/输出是微机系统与外部设备进行信息交换的过程。
输入/输出设备称为外部设备,与存储器相比,外部设备有其本身的特点,存储器较为标准,而外部设备则比较复杂,性能的离散性比较大,不同的外部设备,其结构方式不同,有机械式、电动式、电子式等;输入/输出的信号类型也不相同,有数字信号,也有模拟信号;有电信号,也有非电信号;输入/输出信息的速率也相差很大。
因此,CPU与外部设备之间的信息交换技术比较复杂。
CPU与外设之间的信息交换,是通过它们之间接口电路中的I/O端口来进行的,由于同一个外部设备与CPU之间所要传送的信息类型不同,方向不同,作用也不一样(例如数据信息、状态信息、控制信息、输入/输出等),所以接口电路中可以设置多个端口来分别处理这些不同的信息。
2.输入/输出端口的寻址方式微机系统采用总线结构形式,即通过一组总线来连接组成系统的各个功能部件(包括CPU、内存、I/O端口),CPU、内存、I/O端口之间的信息交换都是通过总线来进行的,如何区分不同的内存单元和I/O端口,是输入/输出寻址方式所要讨论解决的问题。
根据微机系统的不同,输入/输出的寻址方式通常有两种形式:(1).存储器对应的输入、输出寻址方式这种方式又称为存储器统一编址寻址方式或存储器映象寻址方式。
方法:把外设的一个端口与存储器的一个单元作同等对待,每一个I/O端口都有一个确定的端口地址,CPU与I/O端口之间的信息交换,与存储单元的读写过程一样,内存单元与I/O端口的不同,只在于它们具有不同的的地址。
优点:①CPU对I/O端口的读/写操作可以使用全部存储器的读/写操作指令,也可以用对存储器的不同寻址方式来对I/O端口中的信息,直接进行算术、逻辑运算及循环、移位等操作。
微机原理5-中断
的。 JC
RCL
PROG7
AL,1
(2) 缺点:不管外设是否有中 断请求都需要按次序逐一询问,因
JC
PROG6
而效率较低。特别是在中断源较多
的情况下,转至中断服务程序的时 间较长。
• 硬件优先权排队电路 使用硬件进行中断优先权排队主要有以下两种方式: 比较器方式 在图中优先权寄存器中存放的是当前
软件判优法软件查询法p68图52图53硬件判优法硬件排队法简单硬件方式串行菊花链p70图54并行优先级编码器p70图55专用硬件方式可编程中断控制器8259实现软件查询的接口电路保护现场中断0申请中断1申请中断2申请外设0中断服务程序恢复现场中断返回外设1中断服务程序外设2中断服务程序yyynn用软件查询确定中断优先权软件查询的方法是
1) 中断请求
当外设需要CPU提供服务时,便通过自身的中断请求触发
器发出中断请求信号,将它加至CPU的中断请求输入引脚 (INTR),形成对CPU的中断请求。这个信号一直保持到CPU响 应中断后才被清除,如图1所示。
AB 15~0 DB 7~0 CPU INTR WR RD
译码 数据端口 控制端口 &
参考图5.3(pp69)。
如果设定该接口的端口号为20H,程序查询可采用两种方法。 1) 屏蔽法
IN TEST JNE TEST JNE AL,20H AL,80H PROG7 AL,40H PROG6 ;读取中断请求触发器的状态 ;检查“设备7”是否有请求 ;是,则转至“设备7”的处理程序PROG7 ;否,检查“设备6”是否有请求 ;是,则转至“设备6”的处理程序PROG6
当 前 中断响应 中断 服务 程序断点 程 序 程序 中断返回
中 断 源
第5章8086的中断系统
在第二个INTA信号有效,8259A送中断类型码 (初始化时写入8259A)到数据总线,由CPU启 动中断过程,同时撤消中断请求信号.
二、不可屏蔽中断NMI
发生“灾难性”事件(如电源掉电、存储器读 写出错、总线奇偶出错或协处理器中断请求 等),NMI=1,无法禁止(不受IF影响), 优先级比INTR高,且是边沿触发(只要有效 宽度大于2T即可),中断类型号为2,CPU响 应NMI,不发INTA,不要求外设提供中断向 量,自动到08H单元取入口地址。
5.3.2 外部中断
一、可屏蔽中断INTR 处理过程: 1)接口发请求,若屏蔽位(可用命令写入)=0, 通常由可编程中断控制器8259A PIC驱动,INTR=1,
一直保持到收到响应信号或撤消请求为止. 若IF=0(关中断,可由CLI复位),CPU不响应,继
续处理下一条指令;
若IF=1(开中断,可由STI置位),CPU响应, 2)执行两个INTA总线周期,发两个INTA信号,时序
专用5个(内部中断):在某些特定情况下, 由CPU内硬件自动提供类型号0~4;
保留27个(软件中断):由内部软件的中断 指令产生,供系统开发用。
用户定义224个(外部中断):由外部设备 硬件启动。
可以利用保留的中断类型码扩充自己需要的 中断功能,只要在向量表中加入对应的中断 向量即可。
由系统提供或用户定义,CPU执行后,立即产生中 断,转向n规定的中断服务程序去,入口地址在初 始化时已预置在中断向量表中。
四、断点中断——类型3(单字节指令)
CPU执行INT 3 (简写INT)时,产生中断, 进行特殊处理,如显示寄存器、存储单元的内 容,以检查程序运行的结果是否正确。在调试 时把断点插入程序中的关键之处,命令如-G CS: nnnnH。
《微机原理》8086与PC(22)PPT课件
许临时开放对低优先级中断源的服务
8259A的工作方式(续)
中断结束方式
中断自动结束方式:ISR中在响应时自动置1的位在进
入中断服务程序后自动清0
一般中断结束方式:在全嵌套方式下,EOI命令中不
指定结束的中断级,约定结束ISR中的最高优先级中 断,对应位将被复位
特殊中断结束方式:在特殊全嵌套方式下,EOI命令
指定一个确切的被复位的ISR位,即指定结束的中断 请求的中断级
系统总线的连接方式
缓冲方式
非缓冲方式
中断请求的引入方式
边沿触发、电平触发、中断查询
单片8259A中断系统的硬件连接
8259A
双 片 中 断 系 统 的 硬 件 连 接
三、DMA传送
中断传送方式的缺点:
中断传送与查询方式传送比较,CPU利用率 较高,但中断传送与查询方式一样,是CPU通 过程序执行和转移进行传送的,是一种程序传 送
CPU的中断响应、断点保护、现场寄存器的 保护需要较长的时间,另外程序转移将导致 BIU中的指令队列被清空,因此,中断传送的 速度较慢
为了解决这个矛盾,必须引入一种不依赖于 CPU的、在存储器与外设、外设与外设、存储 器与存储器之间的传送方式:直接存储器访问 方式(Direct Memory Access)
8086系统扩展
----常用接口芯片
一、8086中断系统
8086的中断类型
内部中断(软件中断)
不能屏蔽,CPU不需要中断响应周期 CPU运行引起的中断:除0中断(0)、溢出中断(4) 调试中断:单步中断(1)、断点中断(3) 指令中断:Int n
外部中断(硬件中断)
NMI非屏蔽中断:不能屏蔽,用于系统核心硬件 的故障(系统掉电、存储器读写错、总线奇偶错)
8086中断系统
功能:如果(DL)=0FFH,则表示是从键盘输入单字 符送AL寄存器中 如果(DL)≠0FFH,则表示是将DL寄存器中内容送 屏幕显示输出
(6)返回操作系统
4CH号DOS系统功能调用 格式: MOV AH, 4CH INT 21H 功能: 结束当前正在执行的程序,并返回操作系统。屏幕显 示操作系统提示符(N>),N为当前使用的驱动器名
D7 D0
打 印 机 BUSY
INTR CPU
INT STB I/O 接口
4. DMA传送方式
无条件传送方式 CPU控制 条件传送方式 字符传送
中断传送方式
DMA控制 DMA传送方式
大批量数据传送
§6.2 中断
1. 中断的定义和作用
定义:指当CPU正在处理某件事情的时候,突然发生的某一 外部事件(如一个电平的变化,一个脉冲沿的发生或定时 器的计数溢出等)请求CPU迅速去处理,此时若条件允许, CPU暂时停止当前的工作,转去处理所发生的事情。处理 完该事件以后,再回到原来被终止的地方(断点),继续 原来的工作,这样一个完整的过程称为中断
来自外设
&
&
地址译码器
RD
M/IO
WR
地址译码器
CPU 地址总线
2. 条件传送方式
又称查询式传送,在不便使用无条件传送场合下,可 采用查询方式来解决CPU和外设的速度匹配问题
工作方式:CPU需要I/O接口提供状态和数据两个端口, CPU通过状态端口查询外设的状态,若数据“准备好” 就进行数据传送,否则继续查询 优点:通用性好,硬件接线和查询程序十分简单
77
0
3. 硬件中断(外部中断)
(1)非屏蔽中断 NMI
中断请求
8086中断
非屏蔽中断NMI(用户不能 用软件屏蔽)
外中断,硬件中断(来 自CPU外部) 可屏蔽中断(INTR)
中断
内中断,软件中断(由 CPU内部INT指令引起)
INT
运算错误
debug
8259A中断控制器
非屏蔽中断
通过CPU的NMI引脚进入,NMI 被响应时,自动产生2号类型中 断。 -它不受中断允许标志的屏蔽,微 处理器无法禁止,将在当前指令 执行结束予以响应; -8086的非屏蔽中断的类型号是2; -非屏蔽中断主要用于处理系统的 意外或者故障。 例: ——电源调电前的数据保护 ——存储器读写错误的处理 (整个系统中只能有一个非屏蔽 中断)
谢谢
中断屏蔽
IF=0:可屏蔽中断不会被响 应。 -关中断、禁止中断、中断 屏蔽系统复位,使IF=0; -任何一个中断被响应,使 IF=0; -执行指令CLI(禁止中断发 生),使IF=0; IF=1:可屏蔽中断会被响应 。 -开中断、允许中断、中断 开放执行; -指令STI(禁止中断发生) ,使IF=1; 执行指令IRET恢复原IF状态 。
中断屏蔽方式
1.普通屏蔽方式 -将中断屏蔽寄存器 (IMR)中某一或几位 置1,即可将相应位的 中断请求屏蔽。例如 :将11110000写入IMR ,即可屏蔽IR7 –IR4 的中断请求,开放IR3 –IR0的中断。
中断屏蔽方式
2.特殊屏蔽方式: 通常情况下,当一个 终端被响应时,禁止 同级或较低级别的中 断请求。在特殊屏蔽 方式下,当一个中断 被响应时,仅屏蔽同 级别的再次中断,较 低或者较高级别的中 断请求可被允许进入 。
非屏蔽 中断 NMI (用户 不能用 软件屏 蔽)
RAM奇偶效验错
I/O通道的扩展板出 现奇偶校验错
微机原理-微处理器8086基础知识
02
微处理器8086基础知识
8086微处理器的结构与功能
8086微处理器由运算器、控制 器、寄存器组、内部总线等组成,
是计算机系统的核心部件。
8086微处理器具有处理指令、 执行算术逻辑运算、控制输入输 出等功能,是计算机实现信息处
理的关键部件。
8086微处理器采用16位字长, 支持多任务处理,可实现高效的
详细描述
基址加变址加变址加位移寻址方式是指操作数的地址由基址寄存器、变址寄存器、位移量共同确定。这种方式的 特点是可以通过对基址寄存器和变址寄存器的修改来方便地实现数据的传递和交换,同时也可以实现数组元素的 访问和修改。
04
8086的指令集
数据传送指令
MOV指令
用于将数据从一个位置移动到另一个 位置。格式为MOV dest, src。
06
8086的输入输出系统
输入输出指令
IN指令
用于从指定的I/O端口读取数据到累加器。
OUT指令
用于将累加器中的数据写入到指定的I/O端口。
输入输出指令对累加器内容的影响
使用IN指令后,累加器的内容将被替换为从I/O端口读取的数据;使用OUT指令后,累加 器的内容将被写入到指定的I/O端口,同时累加器的内容将被清零。
学习微机原理有助于培养学生的逻辑思维、问题解决能力以及创新能力,对未来的 职业发展具有重要意义。
THANKS
感谢观看
逻辑指令
AND、OR和XOR指令
用于执行逻辑与、或和异或操作。格式为 AND dest, src、OR dest, src和XOR dest, src。
NOT指令
用于执行逻辑非操作。格式为NOT dest。
控制转移指令
中断技术
4.中断返回 中断服务程序结束,执行中断返回. ①自动交保存在堆栈中的标志FR,断点(IP,CS)依次 弹出并装入. ②回到中断前的地址开始继续执行.
三,中断源,中断识别,优先级
中断源:发出中断请求的外设或引起中断的内部原因称 为中断源. 中断识别:CPU响应中断后,只知道有中断请求但不知道 是哪一个中断源,寻找中断源的操作过程称为中断识别. 中断识别的目的:形成该中断服务程序的入口地址.
1.中断请求触发方式的设定(ICW1) 功能:设定中断请求的触发方式,是电平触发还是边 没触发. ICW1的格式:
A0 ICW1 0 D7 D6 0 0 D5 0 D4 1 D3 LTIM D2 ADI D1 SNGL D0 IC4
16位无效
特征位电平触发无效 单片使用 需要ICW4
例.若8259A采用电平触发,单片使用,需要ICW4,则 MOV OUT AL,00011011B 20H,AL ;ICW1的内容 ;写入ICW1端口( 11 12 13 14 15 3 4 5 6 7
标准应用
奇偶校验错,I/O检测错中断 定时器OUT0中断 键盘输入中断 接收从片8359A的中断请求INT 实时钟中断 改向INT0AH(以IRQ2出现) 保留 保留 保留 协处理器中断 硬磁盘控制器中断 保留 串行通信(COM2)中断 串行通信(COM1)中断 打印机(LPT2)中断 软磁盘控制器中断 打印机(LPT1)中断
例:PC机,000003FF共1024
03FF 中断 向量表 0BA9 0125 0000 存放256个向量
1024个 单元
2.中断向量指针与中断类型号 什么叫"中断向量指针"? 指出中断向量存放在中断向量表的位置(或地址).
8086汇编语言学习(十)8086中断
8086汇编语⾔学习(⼗)8086中断8086中断介绍 任何⼀种CPU,都具备⼀种能⼒,可以在执⾏完当前正在执⾏的指令之后,检测到来⾃CPU内部或外部产⽣的特殊通知信息,并⽴即对所接收到的信息做出相应的处理。
这类特殊的信息,被称作中断信息。
顾名思义,中断指的是CPU不去正常执⾏接下来的指令,⽽是被中断,转⽽处理中断信息。
中断信息的种类有很多,但却有着⼀些共同点,中断信息中都包含了中断信息的类型码,⽤于标识中断信息。
8086的中断类型码是8位的,这代表着8086CPU最多可以处理256种不同的中断信息。
中断处理程序 CPU接受到了中断信息后,需要进⾏相应的处理,处理逻辑依然是由开发⼈员编写程序来控制的,所编写的程序被称作中断处理程序。
⼀般来说,需要编写不同的中断处理程序以应对不同的中断信息。
要令CPU中⽌当前指令的执⾏,转⽽跳转执⾏中断处理程序,其原理依然是通过改变8086CPU中CS:IP的值,使之指向中断信息对应的中断处理程序。
想要CPU令处理不同的中断信息时跳转到对应的中断处理程序,则必须要有⼀种机制将中断信息和中断处理程序建⽴关联。
中断向量表 8086CPU的设计者提供了⼀种叫做中断向量表的结构,⽤于建⽴中断类型码和中断处理程序⼊⼝的关联关系。
中断向量表,就是中断程序⼊⼝地址的⼀个列表,被保存在指定的内存地址中,便于CPU读取。
每⼀个中断向量列表项(即中断处理程序⼊⼝地址)是32位的,占两个字的空间,其中⾼16位存放段地址,低16为存放偏移地址。
中断向量表在8086CPU中的位置是固定的,位于0000:0000~0000:03ff这⼀特殊内存空间中(CPU会固定的到约定的内存处获取数据)。
CPU在跳转中断处理程序时,以中断类型码*4+2字单元中的数据设置CS,中断类型码*4字单元中的数据设置IP,如此⼀来,便能正确的跳转对应的中断处理程序。
中断处理过程 虽然已经说明了CPU是如何根据中断信息中的类型码跳转执⾏指定的中断处理程序。
7.48086中断系统
地址(中断向量),然后转到该入口地址去执行中断
服务程序。
8086/8088的向量中断
◆ 中断类型号——8086/8088最多能管理256个中断,统一编号
为0~255(00H~FFH)。 ◆中断向量——中断服务程序的入口地址,即段基址CS:偏 移址IP 。 ◆中断向量表——8086/8088系统在内存的最低1K字节(0段 的0000H~03FFH)建立了中断向量表,按中断类型号顺序 存放256个中断向量。 ◆中断向量表地址——中断向量在中断向量表中的地址。中断 向量表地址与中断类型号的关系为:
×4
CS
3. 8086/8088中断响应过程——软件 中断
软件中断类型号n由系统固定分配(专用)或由中断(INT) 指令指定,所以软件中断能自动获得中断类型号n 。 必须事先设置中断类型号n 的中断向量表。 软件中断响应过程: 状态寄存器和中断断点(当前的CS:IP ,返回地址) 压入 堆栈; 中断类型号n×4,得到中断向量表地址; 读取连续4个字节的内容——中断向量,送入IP和CS;
软件中断(内部中断)——中断指令
INT n引起的中断
中断指令INT n引起的(中断类型号为n):中断 指令的指令格式为 INT n,操作数n就是中断类型 号。当CPU执行完毕中断指令INT n后,就会立 即产生一个中断类型号为n的中断。
硬件中断(外部中断)——不可屏蔽 中断
不可屏蔽中断(非屏蔽中断)NMI(中断类型 号为2):就是用户不能通过CPU内的中断允许 触发器IF控制的中断,由8086CPU的NMI管脚引 入。NMI中断请求采用上升沿触发方式,这种 中断一旦产生,在CPU内部直接生成中断类型 号02。一般用于紧急故障处理。
第5章 中断系统
【本章内容】本章主要介绍8086微型计算机的中断系统, 包括中断的基本概念,中断源、中断向量表、中断过程, 中断类型码和中断服务程序入口地址之间的关系,最后 介绍集成可编程中断控制器8259A的结构、功能和使用 方法。
【本章重点难点】本章重点要求掌握中断的基本概念、 中断响应的过程以及中断控制器8259A的使用。
套方式。 ①完全嵌套方式 ②特殊完全嵌套方式 在多片8259A级联的情况下需要采用特殊完全嵌套方式,
它与完全嵌套方式工作情况基本相同,不同之处是在CPU 中断服务期间,除了允许高优先级的中断请求进入外,还 允许同级中断请求进入。 (4)优先级循环方式 8259A提供了两种改变中断源优先级的方式:优先级自动 循环方式和优先级特殊循环方式。 (5)中断结束方式 ①中断自动结束方束 ②中断非自动结束方式 (6)读8259A状态方式
5.2 8259A可编程中断控制器
1.8259A的外部引脚特性 8259A引脚可分成3部分:与CPU相连的引线(与地址总
线相连的有2条,与数据总线相连的有8条,与控制总线相 连的有4条),与I/O中断源和其它8259A之间的连线,电 源线。
2.8259A内部结构 (1)数据总线缓冲器 (2)读/写控制电路
外部可屏蔽中断响应而言,它包括中断请求、中断承认、 保护断点、中断源识别、中断服务、中断返回等几个阶段。 (1)中断请求 (2)中断承认 (3)保护断点 (4)中断源识别 ①软件查询方法 ②硬件排队方式 (5)中断服务 (6)中断返回
2.中断处理过程
微机系统中各种中断的响应和处理过程是不相同的,其主 要区别在于如何获得中断源的中断类型码。当CPU响应内 部中断和NMI断时,中断源的中断类型码是由CPU硬件自 动形成或由程序提供且不受中断允许位IF的影响,而CPU 响应INTR中断时,其中断类型码
8086汇编中断
8086汇编中断8086汇编中断中断:CPU不再接着(刚执⾏完的指令)向下执⾏,⽽是转去处理中断信息。
内中断:由CPU内部发⽣的事件⽽引起的中断外中断:由外部设备发⽣的事件引起的中断8086的内中断CPU内部产⽣的中断除法错误,⽐如:执⾏div指令产⽣的除法溢出单步执⾏执⾏into指令执⾏int 指令8086的中断类型码(1)除法错误:0(2)单步执⾏:1(3)执⾏ into 指令:4(4)执⾏ int n指令,⽴即数 n 为中断类型码。
assume cs:codesg, ss:stacksg, ds:datasgstacksg segmentdb 200h dup (0)stacksg endsdatasg segment; ‘$': 9 退出显⽰的格式; 13,10:回车换⾏szmsg db 13,10,'hello world!',13,10,'$'datasg endscodesg segmentstart:mov ax,datasgmov ds,axlea dx, szmsg; ah寄存器为9:终端号 9 显⽰信息、显⽰ds为段地址 dx 位偏移地址的包含信息; 会取上⾯ szmsg 符号的 hello worold! 字符mov ah,9int 21h; ah寄存器为4c:则退出程序,为Dos状态mov ax,4c00hint 21hcodesg endsend start案例说明中断过程中断过程由CPU的硬件⾃动完成;⽤中断类型码找到中断向量,并⽤它设置CS和IP8086CPU的中断过程(1)从中断信息中取得中断类型码(2)标志寄存器的值⼊栈——中断过程中要改变标志寄存器的值,需要先⾏保护(3)设置标志寄存器的第8位TF 和第9位IF的值为0(4)CS的内容⼊栈;(5)IP的内容⼊栈;(6)从中断向量表读取中断处理程序的⼊⼝地址,设置IP和CS。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Y
Y
IF=1 非屏蔽中断 N 可屏蔽中断 单步中断
Y
中断响应周期 读中断向量号
低
中断响应过程
标志寄存器入栈 TEMP=TF,IF=TF=0
( 1) ( 2)
8086各种中断源的优先 CS:IP入栈
获取中断向量 权,实际上是指被识别
( 3)
( 4)
出来的先后; 还有NMI
N
Y
Y 多种中断同时请求时, TEMP=1 N 最先响应的则可能是单 执行服务程序 弹出 CS:IP 步中断或 NMI 中断。 弹出标志寄存器 返回被中断程序 ( 6) ( 5)
硬件中断
由CPU外部中断请求引脚NMI和INTR引起的
中断称为硬件中断(亦称为外部中断) ① 非屏蔽中断
通过CPU的NMI(Non-Maskable Interrupt)引
脚进入, NMI被响应时, 自动产生2号类型中断。
它不受中断允许标志的屏蔽,微处理器无法
禁止,将在当前指令执行结束予以响应;
5.2 中断处理过程
1. 中断过程
中断请求:
中断源向CPU发出请求中断信号。中断信号将被锁存, 直到CPU响应中断后,中断请求信号才被清除。
中断响应:
CPU 在执行每条指令的最后一个时钟周期检测中断请求 信号。若发现中断请求信号有效,在允许中断的条件下, CPU响应中断。
CPU会自动完成3项任务: ① 关闭中断,以禁止其它中断请求。
② 断点 (IP 和 CS) 和标志寄存器内容入栈保护。 ③ 获得中断服务程序入口地址,转中断服务
程序。
中断处理:
① 保护现场
•
相关工作寄存器的内容压栈保护。
② 开中断
• 若要响应高级别的中断,则需要打开中断。
③ 执行中断服务程序 ④ 关中断
• 使得不被中断,可顺利恢复现场。
⑤ 恢复现场
• 将压栈保护的内容顺序出栈给相关寄存器。
硬件中断两大类。
软件中断
由CPU执行某些指令引起的中断称为软 件中断(亦称内部中断)。
它包括:
①
除法出错中断-0类型中断
在作除法时,若除数为 0 或商超出了有
关寄存器能表示的数值范围,则产生除法 出错中断。
例如 mov bl,0 idiv bl ;除数BL=0,产生除法错中断 mov ax,200h mov bl,1 div bl ;商=200H,不能用AL表达 ;产生除法错中断
2. 中断向量
1) 中断向量
•
中断服务程序的入口地址亦称中断向量。它 由两部分组成:
① 中断服务程序所在段的段基址(2个字节) 。
② 中断服务程序入口的偏移地址(2个字节) 。
2) 中断向量表
一种类型的中断向量为 4个字节 , 256种中
断的中断向量总共占用 1024 个字节。在 8086系统中,所有的中断向量按类型顺序 存放于内存的最低地址(00000H~003FFH) 的1K单元中。存放中断向量的这1K单元称 为中断向量表。
软件中断,如为调试程序而设置的中断。
中断系统
系统为实现中断而采用的硬件和软件措施。
计算机采用中断系统的目的
维持系统的正常工作,提高系统效率。 实时处理。 为故障处理作准备。
中断系统应具备的基本功能
对于硬设备的中断请求,要具备屏蔽和开
放功能,使得程序员能灵活控制。
能实现“中断判优”,即中断源排队,当
8086的非屏蔽中断的类型号为2;
非屏蔽中断主要用于处理系统的意外或故障。
例如:
电源调电前的数据保护
存储器读写错误的处理
② 可屏蔽中断
中断请求信号通过 CPU 的 INTR( 打断 ) 引脚 且中断允许标志IF=1时, CPU响应中断;
进入;中断响应信号从I 则中断请求被屏蔽;
第五章
中断系统
5.1 中断的基本概念
中断
CPU 暂停执行现行的程序,转而处理随机 事件,处理完毕后再返回被中断的程序处继续 执行,这一全过程称为中断。
中断源
能够引发CPU中断的信息源称为中断源。
常见的中断源为:
一般 I/O设备,如CRT终端、打印机等。
数据通道,如磁盘、磁带等。
实时时钟,如定时器芯片8253产生的定时 中断请求信号。 故障信号,如电源掉电等。
通常可屏蔽中断源经过中断控制器 8259A
管理再向CPU发INTR请求。
•
中断标志IF的状态
IF=0:可屏蔽中断不会被响应 关中断、禁止中断、中断屏蔽统复位,使 IF=0 任何一个中断被响应,使IF=0 执行指令CLI,使IF=0 IF=1:可屏蔽中断会被响应
•
•
• •
开中断、允许中断、中断开放执行; 指令STI,使IF=1 执行指令IRET恢复原IF状态
⑥ 中断返回
• 中断服务程序的最后一条指令是中断返回指令
IRET, 执行后IRET后CPU自动从堆栈中弹出IP 、 CS和FLAGS的内容, 返回主程序继续执行。
现行指令
软件中断 N
查询中断的顺序, 决定了各种中断源的优先权 Y 软件中断 高
除法错中断 Y 指令中断 溢出中断
NMI
N INTR N TF=1 N 下条指令
N型中断向量在中断向量表中的位置: 存放地址= N×4~( n×4 +3 ) N×4字单元存放偏移地址; N×4+2的字单元存放段基址。
② 单步中断-1类型中断 在单步标志TF=1且中断允许标志IF=1时,
每执行一条指令就引起一次中断。
③ 断点中断-3类型中断 主要用在除错调试程序中, 利用“INT 3” 设置断点, 目的是显示断点前程序的执行结果。
④ 溢出中断-4类型中断 当溢出标志 OF=1 时,执行指令 INTO,则 产生溢出中断。
例如
MOV AX , 2000H
ADD AX , 7000H
INTO ;2000H+7000H=9000H,溢出:OF=1
;因为OF=1,所以产生溢出中断
⑤ 中断指令 INT n INT n是中断指令, n是中断类型号 (0~
255)。
磁盘操作系统、基本输入输出系统的功 能即是用INT n指令中断调用。
有多个中断源提出请求时,高级别的中断请 求能被优先响应。
能实现中断嵌套,即高级别的中断源能
够中断低级别的中断服务程序。
系统响应中断后,能自动转入中断处理。
中断处理结束,能自动返回。
5.2 8086中断系统
1. 8086系统的中断分类
8086系统共有 256种类型的中断,对应的 中断类型号为: 0~255。可分为软件中断 和