您好、欢迎来到现金彩票网!
当前位置:2019跑狗图高清彩图 > 向量屏蔽 >

7中断技术完整汇编ppt

发布时间:2019-07-25 09:37 来源:未知 编辑:admin

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  第7章 第7章:教学重点 教学重点 8088 CPU的中断系统 内部中断服务程序的编写 中断控制器8259A的作用 第7章:7.1 8088中断系统 8088的中断系统采用向量中断机制 能够处理256个中断 用中断向量号0 ~ 255区别 可屏蔽中断还需要借助专用中断控制器Intel 8259A实现优先权管理 第7章:7.1.1 8088的中断类型 内部中断 除法错中断 指令中断 溢出中断 单步中断 外部中断 非屏蔽中断 可屏蔽中断 第7章:1. 内部中断 内部中断是由于8088内部执行程序出现异常引起的程序中断 利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有效途径 例如,ROM-BIOS和DOS系统利用内部中断为程序员提供了各种功能调用 第7章:⑴ 除法错中断 在执行除法指令时,若除数为0或商超过了寄存器所能表达的范围,则产生一个向量号为0的内部中断,称为除法错中断 例如: mov bl,0 idiv bl ;除数BL=0,产生除法错中断 mov ax,200h mov bl,1 div bl ;商=200H,不能用AL表达 ;产生除法错中断 第7章:⑵ 指令中断 在执行中断调用指令INT n时产生的一个向量号为n(0 ~ 255)的内部中断,称为指令中断 其中向量号为3的指令中断比较特别(生成一个字节的指令代码:11001100),常用于程序调试,被称为断点中断 例如:DEBUG.EXE调试程序的运行命令G设置的断点,就是利用INT 3指令实现的 第7章:⑶ 溢出中断 在执行溢出中断指令INTO时,若溢出标志OF为1,则产生一个向量号为4的内部中断,被称为溢出中断 例如: mov ax,2000h add ax, 7000h ;2000H+7000H=9000H,溢出:OF=1 into ;因为OF=1,所以产生溢出中断 第7章:⑷ 单步中断 若单步中断TF为1,则在每条指令执行结束后产生一个向量号为1的内部中断,称为单步中断 例如:DEBUG.EXE调试程序的单步命令T就利用单步中断实现对程序的单步调试 第7章:2. 外部中断 外部中断是由于8088外部提出中断请求引起的程序中断 利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部意外或紧急事件 外部中断的原因是处理器外部随机产生的,所以是真正的中断(Interrupt) 内部中断的原因是处理器执行程序出现异常,所以经常被称为异常(Exception) 第7章:⑴ 非屏蔽中断 通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予以响应,这个中断被称为非屏蔽中断 8088的非屏蔽中断的向量号为2,非屏蔽中断请求信号为NMI 非屏蔽中断主要用于处理系统的意外或故障。例如: 电源调电前的数据保护 存储器读写错误的处理 第7章:⑵ 可屏蔽中断 外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中断响应信号,这个中断就是可屏蔽中断 8088的可屏蔽中断请求和响应信号分别是INTR和INTA;由IF标志控制可屏蔽中断是否允许响应;向量号来自外部中断控制器 8088通常需要配合中断控制器8259A共同处理可屏蔽中断 可屏蔽中断主要用于主机与外设交换数据 第7章:中断标志IF的状态 IF=0:可屏蔽中断不会被响应 关中断、禁止中断、中断屏蔽 系统复位,使IF=0 任何一个中断被响应,使IF=0 执行指令CLI,使IF=0 IF=1:可屏蔽中断会被响应 开中断、允许中断、中断开放 执行指令STI,使IF=1 执行指令IRET恢复原IF状态 明 确 IF 标 志 的 状 态 是 关 键 第7章:7.1.2 8088的中断响应过程 第7章:7.1.2 8088的中断响应过程(续) 8088各种中断源的优先权, 实际上是指被识别出来的先后 多种中断同时请求时, 最先响应的则可能是 单步中断或NMI中断 第7章:7.1.3 8088的中断向量表 中断向量:中断服务程序的入口地址(首地址) 逻辑地址含有段地址CS和偏移地址IP(32位) 每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节 8088微处理器从物理地址000H开始,依次安排各个中断向量,向量号也从0开始 256个中断占用1KB区域,就形成中断向量表 向量号为N的中断向量的物理地址=N×4 第7章:7.2 内部中断服务程序 编写内部中断服务程序与编写子程序类似 利用过程定义伪指令PROC/ENDP 第1条指令通常为开中断指令STI 最后用中断返回指令IRET 通常采用寄存器传递参数 主程序需要调用中断服务程序 调用前,需要设置中断向量 设置必要的入口参数 利用INT n指令调用中断服务程序 处理出口参数 第7章:例7.1 内部中断服务程序 编写80H号中断服务程序,并调用 功能:具有显示以“0”结尾字符串的功能,利用显示器功能调用INT 10H实现字符显示 字符串缓冲区首地址为入口参数: DS:DX(段地址:偏移地址)传递参数 第7章:例7.1的数据段 ;数据段 intoff dw ? ;用于保存偏移地址 intseg dw ? ;用于保存段基地址 intmsg db ‘A Instruction Interrupt !’, 0dh,0ah,0 以“0”结尾 回车、换行 第7章:例7.1的获取原中断向量 ;代码段 mov ax,3580h ;利用DOS功能35H号 int 21h ;获取原80H中断向量 mov intoff,bx ;保存偏移地址 mov intseg,es ;保存段基地址 获取中断向量(DOS功能调用INT 21H) 功能号:AH=35H 入口参数:AL=中断向量号 出口参数:ES:BX=中断向量(段地址:偏移地址) 第7章:例7.1的设置新中断向量(书上还有另外两种方式) push ds mov dx,offset new80h ;取中断程序偏移地址 mov ax,seg new80h ;取中断程序段地址 mov ds,ax mov ax,2580h int 21h pop ds 设置中断向量(DOS功能调用INT 21H) 功能号:AH=25H 入口参数:AL=中断向量号 DS:DX=中断向量(段地址:偏移地址) 第7章:例7.1的中断调用 ;设置入口参数: DS=段地址(已设置) DX=偏移地址 mov dx,offset intmsg int 80h ;调用80H中断服务程序 A Instruction Interrupt ! 第7章:例7.1的主程序返回 mov dx,intoff ;恢复原中断向量 mov ax,intseg mov ds,ax ;改变DS mov ax,2580h int 21h ;因紧接着返回DOS mov ax,4c00h ;故无需恢复DS int 21h 设置中断向量(DOS功能调用INT 21H) 功能号:AH=25H 入口参数:AL=中断向量号 DS:DX=中断向量(段地址:偏移地址) 第7章:例7.1的中断服务程序(1) ;80H号内部中断服务程序: ;显示字符串(以“0”结尾) ;入口参数:DS:DX=缓冲器首地址 new80h proc ;过程定义 push ax ;保护寄存器 push bx push si sti ;开中断 第7章:例7.1的中断服务程序(2) mov si,dx new1: mov al,[si] ;读取一个欲显示字符 cmp al,0 ;为结尾“0”,则结束 jz new2 mov bx,0 ;采用ROM-BIOS功能调用 mov ah,0eh int 10h inc si ;准备显示下一个字符 jmp new1 第7章:例7.1的中断服务程序(3) new2: pop si ;恢复寄存器 pop bx pop ax iret ;中断返回 new80h endp ;过程(中断服务程序)结束 A Instruction Interrupt ! 第7章:7.3 8259A中断控制器 Intel 8259A是可编程中断控制器PIC 用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断 中断控制器功能: 1、接收外部中断请求,判优,将请求送到CPU的INTR端。 2、当CPU响应中断并进入中断处理子程序后,用来继续管理响应高优先级的中断,屏蔽低优先级的中断。 8259A的基本功能 一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的中断类型号 8259A设计有多种工作方式,可通过编程选择 第7章: 一、8259A的引脚信号、内部结构和工作原理 1、8259A的外部引脚信号(*) D7~D0,INT,/INTA,/RD,/WR,/CS A0:选择8259A的奇地址端口或偶地址端口。 要求:1、偶地址在较低地址,奇地址在较高地址。2、系统为每片8259A均留下两个端口地址。3、8088系统中,系统的A0连8259A的A0,8086系统中,系统的A1连8259A的A0(8088数据线、当8259A采用缓冲方式时(多片),作为输出,在数据从8259A往CPU传输时使数据总线A采用非缓冲方式时(一片或少数片,无需总线驱动器),作为输入,用来决定本片是主片还是从片,=1时为主片,=0时为从片。 2、8259A的内部结构 数据总线缓冲器 读/写控制电路 级联缓冲器/比较器 中断请求寄存器IRR: 保存8条外界中断请求信号IR0~IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 第7章:8259A的内部寄存器 中断屏蔽寄存器IMR 保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许 中断服务寄存器ISR 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务 优先级判别器PR 控制电路 3、8259A的编程结构 第一组寄存器有4个,用来容纳初始化命令字(ICW1~ICW4),它们由初始化程序设定,在系统工作过程中不再改变。 第二组寄存器有3个,用来容纳操作命令字(OCW1~OCW3),由应用程序设定,用来对中断处理过程作动态控制,在一个系统运行时可被多次设置。 处理过程(*) 二、8259A的工作方式 1、设置优先级的方式 (1)全嵌套方式:最常用,其中断请求按优先级IR0~IR7处理,0级中断优先级最高。 (2)特殊全嵌套方式:和(1)基本相同,本质区别:同级可以中断。应用于8259A级联系统中。 (3)优先级自动循环方式:用在系统中多个中断源优先级相等的场合。一个中断受到服务后优先级自动降到最低。 初始优先级:IR0,IR1……..IR7 (4)优先级特殊循环方式 与(3)的不同在于:初始的最低优先级由编程确定。 2、屏蔽中断源方式 (1)普通屏蔽方式 (2)特殊屏蔽方式:可把正在运行的中断屏蔽。 3、结束中断处理的方式(即令ISn位清零) (1)中断自动结束方式 (2)一般的中断结束方式 (3)特殊的中断结束方式 4、连接系统总线、引入中断请求的方式 (1)边沿触发方式 (2)电平触发方式 (3)中断查询方式 三、8259A的初始化命令字和操作命令字 两个端口地址,一奇一偶 偶地址对应:ICW1,OCW2,OCW3 奇地址对应:ICW2,ICW3,ICW4,OCW1 1、8259A的初始化命令字(须按顺序填写) (1)ICW1:芯片控制初始化命令字 0 1 LTIM ADI SNGL IC4 A0 为ICW1,非OCW2或OCW3 0:边缘触发 1:电平触发 通常为0 1:只有一片 0:多片 1:使用ICW4 0:不使用ICW4 8086/8088必须为1 (2)ICW2:设置中断类型码 1 D7 D6 D5 D4 D3 D2 D1 D0 中断类型码高5位 表示引入中断的引脚IR0~IR7 A0 (3)ICW3:标志主片/从片,写入奇地址中 主片: 若某一引脚连有从片,则对应位为1,否则为0 从片: 后三位决定从片的输出端INT连在主片的哪个中断请求输入引脚上。 IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 0 0 0 0 0 ID2 ID1 ID0 (4)ICW4:方式控制初始化,写入奇地址,只有ICW1的D0=1时,才设置ICW4 D3:1=缓冲方式,0=非缓冲方式 D2:在缓冲方式下表示本片为主片还是从片 D3D2=11;主片 D3D2=10;从片 D3=0;D2无用 D1:1=中断自动结束 D0:1=8086/8088系统,0=8080/8085系统 0 0 0 SFNM BUF M/S AEOI uPM 2、8259A的初始化 例1:设端口地址为20H,21H,打印机连到8259A的IR7上,中断矢量为0FH CLI MOV AL,13H OUT 20H,AL MOV AL,0FH OUT 21H,AL MOV AL,01H OUT 21H,AL 例2: 主片的端口地址为20H,21H,中断类型码为08~0FH 从片的端口地址为A0H,A1H,中断类型码为70~77H 从片连接在主片的IR2上 主片的初始化程序: CLI MOV AL,11H OUT 20H,AL MOV AL,08H OUT 21H,AL MOV AL,04H OUT 21H,AL MOV AL,1DH OUT 21H,AL 从片的初始化程序 MOV AL,11H OUT 0A0H,AL MOV AL,70H OUT 0A1H,AL MOV AL,02H OUT 0A1H,AL MOV AL,09H OUT 0A1H,AL 3、8259A的操作命令字 (1)OCW1:中断屏蔽,写入奇地址,其内容直接置入IMR Mi=1,屏蔽;Mi=0,允许 (2)OCW2:设置优先级循环方式和中断结束方式,写入偶地址。 M7 M6 M5 M4 M3 M2 M1 M0 R SL EOI 0 0 L2 L1 L0 R SL EOI 0 0 L2 L1 L0 1 0 0 无效 0 0 0 无效 1 1 0 有效 0 1 0 OCW2无意义 1 0 1 无效 1 1 1 有效 0 1 1 有效 0 0 1 无效 例3:若使系统中8259A的优先级顺序为 IR3,IR4,……..IR1,IR2,如何编写,8259A的偶地址为20H mov AL,0C2H out 20H,Al 例4:清除8259A的ISR第4位(ISR4) mov AL,64H out 20H,AL (3)OCW3:设置和撤销特殊屏蔽方式,设置中断查询方式,设置对8259A内部寄存器的读出。写入偶地址。 a、ESMM=1时,SMM(特殊屏蔽模式位)才能有效 ESMM=SMM=1时,8259A设置为特殊屏蔽方式。再发送ESMM=1,SMM=0时,系统恢复原来的优先级方式。 0 ESMM SMM 0 1 P RR RIS b、P=1为中断查询工作方式。 查询字格式: W2w1w0:请求服务的最高优先级代码 I:当ESMM=SMM=0时,若I=1,外设 有中断请求,I=0,外设无中断请求 c、P=0时,使RR=1,可用来读取IRR和ISR的内容 RR,RIS=10,读取IRR RR,RIS=11,读取ISR I W2 W1 W0 例5、编程,实现将8088系统中8259A的IRR,ISR,IMR的内容读出并送入存储器从0080H开始的数组中,端口地址为20H,21H MOV AL,0AH OUT 20H,AL IN AL,20H MOV [80H],AL MOV AL,0BH OUT 20H,AL IN AL,20H MOV [81H],AL IN AL,21H MOV [82H],AL 例6:设8259A正在为IR5服务,现在若想开放较低级的中断(过一会再禁止),端口地址为A0H, A1H CLI MOV AL,20H OUT 0A1H,AL MOV AL,68H OUT 0A0H,AL STI ……………… CLI MOV AL,48H OUT 0A0H,AL MOV AL,00H OUT 0A1H,AL STI 例:设实验板上8259A已被初始化,且其中断向量地址与8259A引脚之间的关系如下所示: 在IR7上连接一个按键,使得每按一次按键,就触发一次中断,每次响应外部中断IR7时,显示字符“7”,中断10次后,程序退出 中断引脚 0 1 2 3 4 5 6 7 向量地址 20H~23H 24H~27H 28H~2BH 2CH~2FH 30H~33H 34H~37H 38H~3BH 3CH~3FH 程序如下: STACKSEGMENTSTACK DW64DUP(?) STACKENDS CODESEGMENT ASSUMECS:CODE START:PUSHDS;保存数据段 MOVAX,0000H MOVDS,AX;数据段清零 MOVAX,0FFSETIRQ7;取中断程序 入口地址(相对地址) ADDAX,2000H;加装载时IP=2000H地址(绝对地址) MOVSI,003CH;填8259中断7中断矢量 MOV[SI],AX;填偏移量矢量 MOVAX,0000H;段地址CS:=0000H MOVSI,003EH MOV[SI],AX;填段地址矢量 CLI;关中断 POPDS;弹栈 INAL,21H;读8259中断屏蔽字 ANDAL,7FH;开8259中断7 OUT21H,AL MOVCX,000AH A1:CMPCX,0000H JNZA2 INAL,21H;读8259中断屏蔽字 ORAL,80H;关8259中断7 OUT21H,AL STI HLT A2:STI JMPA1 IRQ7:MOVAX,0137H;中断程序入口 INT10H MOVAX,0120H INT10H DECCX MOVAL,20H OUT20H,AL CLI IRET CODEENDS ENDSTART 第7章:7.4 8259A在IBM PC系列机上的应用 第7章:7.4 8259A在IBM PC系列机上的应用(续) 第7章:教学要求 1.熟悉8088的中断类型、中断响应过程、中断向量表 2.掌握内部中断服务程序的编写 3.了解8259A在IBM PC系列机上的应用情况 习题7(第189 ~ 190页)——7.1 7.2 7.4 7.14 补充习题: 1.8088中断允许标志IF在什么情况是0,如何使其为1? 2. 8088CPU各种中断的优先权顺序是什么? 3. 说明IRET指令的功能。 4. 如何利用DOS功能调用设置中断向量? 5. 如何利用DOS功能调用获取中断向量? 8088的中断向量表 向量号255的CS值 用户中断 (向量号255) 3FCH 向量号255的IP值 …… 向量号2的CS值 非屏蔽中断 (向量号2) 008H 向量号2的IP值 向量号1的CS值 单步中断 (向量号1) 004H 向量号1的IP值 向量号0的CS值 除法错中断 (向量号0) 000H 向量号0的IP值

http://bluecaleel.com/xiangliangpingbi/277.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有