微机原理1课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
000
专 用 004 中 008 断 (5个) 00C
010
请见P269 系统 014 使用
(27个) 07C
080
供用户
使用
014
(224个) 3FC
类型0中断入口(除法除错)
IP CS
类型1中断入口(单步中断)
IP CS
类型2中断入口(NMI)
IP CS
类型3中断入口(断点中断)
类型4中断入口(溢出中断)
;保护DS ;取服务程序偏移地址 ;取服务程序段地址
;送功能号 ;送中断类型号 ;DOS功能调用 ;恢复DS
二、8259A内部结构
例:设计一输入接口(同步传送),8位开关量,地 址C00H (8086)。
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 0 0 1 1 000000 000 0
软件法排序的接口电路示意图:
软件查询程序流程图:
软件法排序程序:
IN AL,20H ;读中断触发器的状态
TEST AL,80H ;有电源故障请求?
JZ B1
;没有,继续查询
JMP PWF
;转至电源故障程序入口
B1:TEST AL,40H ;有磁盘请求吗?
JZ B2
;无,继续查询
JMP DISS
;转至磁盘服务程序
§7.2 8086/8088的中断系统
8086/8088 CPU可以处理256种不同类型的中断, 每一种中断都给定一个编号(0255),称为中断类型号, CPU根据中断类型号来识别不同的中断源。8086/8088 的中断源如下图所示。从图中可以看出8086/8088的中 断源可分为两大类:一类来自CPU的外部,由外设的 请求引起,称为硬件中断(又称外部中断);另一类来自 CPU的内部,由执行指令时引起,称为软件中断(又称 内部中断)。
B2:TEST AL,20H ;有磁带请求吗?
JZ B3
;无,继续查询
JMP MT
;转至磁带服务程序
B3:TEST AL,10H ;有CRT请求?
JZ B4
;无,继续查询
JMP CRT
;转至CRT显示服务程序
B4:TEST AL,08H ;有纸带请求?
JZ B5
;无,继续查询
JMP PIN
;转至纸带输入服务程序
MOV DS:[0180H+2],AX 地址
;置Байду номын сангаас务程序所在代码段的段
当然,程序中也可以通过调用DOS功能来设置: INT 21H,AH=25H或35H。见附录F。
例2、下面程序段完成中断类型号为60H的入口地址置
入。
PUSH DS MOV DX,OFFSET INT60 MOV AX,SEG INT60 MOV DS,AX MOV AH,25H MOV AL,60H INT 21H POP DS
二、查询传送方式(条件传送方式)
查询传送也称为条件传送,是指在执行输入指令 (IN)或输出指令(OUT)前,要先查询相应设备的状态, 当输入设备处于准备好状态,输出设备处于空闲状态时, CPU才执行输入/输出指令与外设交换信息。为此,接 口电路中既要有数据端口(可为输入,也可为输出) , 还要有一个一位的状态端口(输入) 。
例1、用传送指令直接将中断服务程序首地址置入矢量 表中。设中断类型号为60H(此类型号对应的矢量表地 址为从00180H开始的四个连续存储单元)。程序段如下:
XOR AX,AX
MOV DS,AX
MOV AX,OFFSET INT60
MOV DS:[0180H],AX
;置服务程序偏移地址
MOV AX,SEG INT60
AA111
A9 A8 A7
0
M/IO
+
A6
A5
A4
A3
G1 /G2B /Y0 /G2A
C 74LS B 138 A
+
D7
/OE
… 74LS373 …
RD D0
G
+5V
作业 设计一8位同步传送的输出接口电路,控制 发光二极管。当某位输出为“1”时,发光二极管 亮,否则发光二极管灭,地址为280H 。
类型5中断入口
...
类型31中断入口
类型32中断入口
...
类型255中断入口
IP CS
对于某类型的中断号m,中断向量为0000:4 × m, 即:其中断服务程序入口地址:
段地址=WORD[4 × m+2] 有效地址=WORD[4 × m] 可见,每一类中断的中断向量是固定的,并存于
00000~003FFH中。例如,类型21H的中断已用做 DOS的系统功能调用)。
查询传送方式的流程图:
从图中可以看出,采用查询方式完成一次数据传 送要经历如下过程:
一般CPU响应中断请求后,在进入中断服务程序 前,硬件会自动实现关中断,这样,CPU在执行中断 服务程序时将不能再响应其他中断请求。为了实现中 断嵌套,应在低级别中断服务程序的开始处加一条开 中断指令STI。能够实现中断嵌套的中断系统,其软、 硬件设计都非常复杂,如果采用了可编程中断控制器 8259A,就会方便很多。
B5:TEST AL,04H ;有纸带穿孔请求吗?
JZ B6
;无,继续查询
JMP PH
;转至纸带穿孔服务程序
B6:TEST AL,02H ;是键盘输入中断请求吗?
JZ POUT
;否,转打印中断服务程序
JMP KEYIN ;转至键盘输入中断服务程序
POUT: …
五、中断的嵌套
CPU在执行低级别中断服务程序时,又收到较高级 别的中断请求,CPU暂停执行低级别中断服务程序, 转去处理这个高级别的中断,处理完后再返回低级别中 断服务程序,这个过程称为中断嵌套,如图所示。
可见,8086/8088可以处理256种中断,每种中断 对应一个中断类型号,每个中断类型号与一个中断服 务程序的入口地址相对应。每个中断服务程序的入口 地址占4个存储单元,其中低地址的两个单元存放中断 服务程序入口地址的偏移量(IP);高地址的两个单元 存放中断服务程序入口地址的段地址(CS)。中断服务 程序的入口地址也叫中断向量。
中断向量表是存放中断向量的一个特定的内存区 域。对于8086/8088系统,所有中断服务程序的入口地 址都存放在中断向量表中。 256个中断向量要占 256×4=1024个单元,即中断向量表长度为1 K个单元。 8086/8088系统的中断向量表位于内存的前1K字节,地 址范围为00000H~003FFH。8086/8088的中断向量表 如图所示: