《微机原理 io口 课件》由会员分享,可在线阅读,更多相关《微机原理 io口 课件(51页珍藏版)》请在金锄头文库上搜索。
1、微机原理及应用信息与电气工程学院第8章 输入输出接口(8学时)l8.3 中断系统8.3.1 中断类型8.3.2 中断向量表8.3.3 中断服务程序8.3.4 中断控制器及其应用8.3 中断系统l中断是微机系统中非常重要的一种技术外部中断:实时响应外部设备的数据传送请求、 及时处理外部意外或紧急事件内部中断:为用户提供了发现、调试、解决程序 执行时异常情况的有效途径lIA-32微处理器的中断系统采用向量中断机制,能够处理256个中断l用中断向量号0255区别可屏蔽中断需要中断控制器实现优先权管理8.3.1 中断类型除法错中断l执行除法指令时,若除数为0或商超过了寄存器所 能表达的范围,产生的一个
2、向量号为0的内部中断l产生除法错中断的程序 ;数据段 msgdb 0dh, 0ah, No divide overflow ! , $ ;代码段 call readuiw;输入一个16位无符号整数,存于AX mov bl, 1 div bl mov dx, offset msg mov ah, 9 int 21hint 08.3.1 中断类型指令中断l指令中断:在执行中断指令INT N时产生的 一个向量号为N的内部中断INT N通常为2字节机器代码l断点中断:向量号为3的指令中断“INT 3”INT 3只有1字节,机器代码是CCH用做程序断点调试的中断8.3.1 中断类型溢出中断l执行溢出中断
3、指令INTO时,若溢出标志OF为1, 产生的一个向量号为4的内部中断l产生溢出中断的程序 ;数据段 msgdb 0dh, 0ah, No overflow !, $ ;代码段 call readuib;输入一个8位有符号整数,存于AL add al, 100 jno noflow into jmp donenoflow:mov dx, offset msg mov ah, 9 int 21h done:8.3.1 中断类型单步中断l单步中断:单步标志TF为1,则在每条指令 执行结束后产生一个向量号为1的内部中断调试程序常利用它实现对程序的单步调试l80286开始又引入其他内部中断,称为异常8.
4、3.1 中断类型非屏蔽中断l外部通过非屏蔽中断NMI请求信号提出的中 断微处理器在当前指令执行结束予以响应中断向量号是2主要用于处理系统的意外或故障lIBM PC系列微机的非屏蔽中断用于主板上存储器产生奇偶校验错I/O通道上产生奇偶校验错数值协处理器产生异常8.3.1 中断类型可屏蔽中断l外部通过可屏蔽中断INTR请求信号提出的 中断在允许可屏蔽中断的条件下,当前指令执行结束 后予以响应同时输出可屏蔽中断响应信号INTA*,产生可屏 蔽中断响应总线周期通常需要中断控制器负责处理多个中断优先权排 队等管理工作主要用于与外设进行数据交换可屏蔽中断从外部获取中断向量号8.3.1 中断类型中断标志lI
5、F1,微处理器开中断可以响应,允许中断,中断开放 lIF0,微处理器关中断不能响应,禁止中断,中断被屏蔽l关中断的情况系统复位后任何一个中断被响应后执行关中断指令CLI后l开中断的方法执行开中断指令STI执行中断返回指令IRET恢复中断前IF状态8.3.1 中断类型中断响应过程(1)指令中断或异常单步中断非屏蔽中断NMI段超界异常可屏蔽中断INTR优先权高优先权低8.3.1 中断类型中断响应过程(2)l将标志寄存器压入堆栈,保护标志位l禁止可屏蔽中断IF、单步中断TFl将被中断指令的逻辑地址压入堆栈l根据向量号获取中断向量l执行服务程序l中断返回IRET断点地址、标志寄存器出栈恢复控制又返回到
6、断点指令继续执行8.3.2 中断向量表 实方式的中断向量表结构l中断向量:中断服务程序入口地址(首地址)含有16位段地址、16位偏移地址的逻辑地址按照“低对低、高对高”的小端方式存储l低字部分是偏移地址,高字部分是段地址l256个中断占用1KB区域,形成中断向量表物理地址00000H,对应向量号从0开始依次每4个字节安排一个中断向量中断向量的物理地址N4中断向量的物理地址N48.3.2 中断向量表 实方式的中断向量表结构8.3.2 中断向量表 保护方式的中断描述符表l中断向量(4B)中段描述符(8B)段选择 器(16位)偏移地址(32位)特权保护l中段描述符表IDT2568B = 2KB中段描
7、述符表地址寄存器IDTR门描述符8.3.3 中断服务程序(1)l利用过程定义伪指令PROC、ENDP要执行STI指令开放可屏蔽中断最后执行IRET指令返回调用程序内部中断服务程序采用寄存器传递参数l中断调用指令INT N执行内部中断服务程序获取中断向量:AH35H号DOS功能调用设置中断向量:AH25H号DOS功能调用8.3.3 中断服务程序(2)功能编号AH35H入口参数AL向量号出口参数ESBX中断向量功能说明获取中断向量功能编号AH25H入口参数AL向量号 DSDX中断向量功能说明设置中断向量8.3.3 中断服务程序内部中断服务程序 (1)l;数据段 intoffdw ? ;用于保存原中
8、断服务程序的偏移地址 intsegdw ? ;用于保存原中断服务程序的段地址 intmsgdb A Instruction Interrupt!, 0dh, 0ah, 0 ;字符串(以0结尾) l;代码段(主程序) mov ax, 3580h;获取原80H中断向量 int 21h mov intoff, bx;保存偏移地址 mov intseg, es;保存段基地址8.3.3 中断服务程序内部中断服务程序 (2)l;代码段(主程序) push ds mov dx, offset new80h mov ax, seg new80h mov ds, ax mov ax, 2580h;设置80H中断
9、向量 int 21h pop ds mov dx, offset intmsg;设置入口参数DS和DX int 80h;调用80H中断服务程序, 显示字符串8.3.3 中断服务程序内部中断服务程序 (3)l;代码段(主程序) mov dx, intoff;恢复原80H中断向量 mov ax, intseg;注意先设置DX、后设置DS 入口参数 mov ds, ax;先改变了DS,就不能准确取 得intoff变量值 mov ax, 2580h int 21h8.3.4 中断控制器及其应用 中断控制器的寄存器(1)l管理外设的多个中断请求并进行优先权排 队等工作lIBM PC/AT机使用两个Int
10、el 8259A可编程 中断控制器每个管理8级中断,请求引脚:IR0IR7每级中断可单独被屏蔽或允许多个芯片级联最多扩展至64级中断为每级中断提供中断向量号8.3.4 中断控制器及其应用 中断控制器的寄存器(2)l8259A的3个8位可读写寄存器中断请求寄存器IRRl保存8个外界中断请求信号IR0IR7的请求状态中断服务寄存器ISRl保存正在被8259A服务的中断状态中断屏蔽寄存器IMRl保存对中断请求信号IR的屏蔽状态8.3.4 中断控制器及其应用 中断控制器的工作方式l普通全嵌套方式(默认)中断优先权顺序固定不变,从高到低依次为IR0、IR1、 IR2、IR7l对当前请求中断中优先权最高的
11、中断IRi予以响应送出中断向量号,对应ISR的Di位置位,直到中断结束l在ISR的Di位置位期间,禁止再发生同级和低级优先权的中 断,允许高级优先权中断的嵌套l普通中断结束方式中断结束:指8259A结束中断的处理,以中断服务寄存器 ISR某位复位作为该中断结束的标志发出普通中断结束EOI命令,把正在服务的中断中优先权 最高的ISR位复位8.3.4 中断控制器及其应用中断触发方式l中断请求信号IR的两种触发方式边沿触发方式上升沿电平触发方式高电平8.3.4 中断控制器及其应用 中断控制器的编程l指定其工作方式和控制中断处理过程开始工作前,必须进行初始化编程l写入初始化命令ICW:选择工作方式工作
12、期间,需要中断操作编程l写入操作命令字OCW:按新要求工作,读取信息等lOCW1:写入IMR,控制中断屏蔽lOCW2:产生EOI命令,改变优先权顺序lOCW3:控制读取IRR、ISR、IMR、查询字8.3.4 中断控制器及其应用 初始化命令字及其编程(1)l初始化命令字ICW1D4位:1表示该命令字是ICW1LTIM:设置中断请求信号的有效形式l1表示高电平有效;0表示上升沿有效SNGL:设置8259A的工作方式l1表示单片工作方式;0表示级联工作方式IC4:设置是否设置初始化命令字ICW4l1表示设置;0表示不设置写入偶地址,即A0=08.3.4 中断控制器及其应用 初始化命令字及其编程(2
13、)l初始化命令字ICW2设置中断向量号基值中断向量号基值:0号中断源IR0对应的中断向量号l高5位为ICW2的高5位,低3位为0中断向量号:高5位为ICW2的高5位,低3位由当前CPU响应的 中断决定lIR0IR7分别对应000111写入奇地址,即A0=18.3.4 中断控制器及其应用 初始化命令字及其编程(3)l初始化命令字ICW3用于级联方式(ICW1的SNGL=0)主片:S0S7指示用于级联连接的中断源请求信号引脚IRnl1表示有级联,0表示无级联从片:高5位为0,低3位指示与其相连的主片IRn的编号l000111分别对应IR0IR7写入奇地址,即A0=18.3.4 中断控制器及其应用
14、初始化命令字及其编程(4)l初始化命令字ICW4ICW1中的IC4=1时设置写入奇地址,即A0=18.3.4 中断控制器及其应用 初始化命令字及其编程(5)l初始化编程8.3.4 中断控制器及其应用 IBM-PC AT微机系统的外中断8.3.4 中断控制器及其应用 中断控制器的应用 (1)l主片I/O地址:20H、21H;从片I/O地址:A0H、 A1Hl工作方式上升沿为中断请求IRQ有效信号IRQ0IRQ7和IRQ8IRQ15中断向量号依次为08H 0FH,70H77H普通全嵌套优先权方式(高低):IRQ0IRQ2,IRQ8 IRQ15,IRQ3IRQ7普通中断结束EOI方式:需要发送普通E
15、OI命令普通屏蔽方式,通过写入IMR允许中断8.3.4 中断控制器及其应用 中断控制器的应用 (2)l主片 mov al, 11h out 20h, al mov al, 08h out 21h, al mov al, 04h out 21h, al mov al, 01h out 21h, all从片 mov al, 11h out 0a0h, al mov al, 70h out 0a1h, al mov al, 02h out 0a1h, al mov al, 01h out 0a1h, al8.3.4 中断控制器及其应用 操作命令字及其编程(1)l操作命令字OCW1用来设置中断源的屏蔽
16、状态lMi=1,表明相应中断源IRi的中断请求被屏蔽lMi=0,表明相应中断源IRi的中断请求未屏蔽写入奇地址,即A0=1l对同一地址的输入指令将把OCW1设置的屏蔽字读入 CPU8.3.4 中断控制器及其应用 操作命令字及其编程(2)l操作命令字OCW2用来控制中断结束方式,修改优先权管理方式写入偶地址,即A0=0特征位D4D3为00R位l0表示中断级的优先顺序为完全嵌套方式l1表示中断级的优先顺序为循环优先方式8.3.4 中断控制器及其应用 操作命令字及其编程(3)l操作命令字OCW2SL位l1表示L2L0指定一个中断级 000111分别对应IR0IR7l0表示L2L0无意义EOI位l1表示OCW2操作命令字用于控制中断结束方式l0表示OCW