您好,欢迎访问三七文档
第12~15章I/O程序设计I/O设备的数据传送方式1、查询方式(程序控制方式)2、中断方式3、DMA方式4、I/O处理机方式中断:内中断(12章、13章)外中断(15章)程序控制方式---端口(14章)一、CPU与外设二、输入/出端口(补充说明P272)1、数据端口(数据缓冲寄存器)2、状态端口(状态寄存器)3、控制端口(控制寄存器)补充说明状态信息、控制信息与数据信息是不同性质的信息,必须要分别传送。但在大部分微机中,只有输入指令IN,输出指令OUT。因此,状态信息和控制信息也被广义地看成一种数据信息,即状态信息作为一种输入数据,而控制信息作为一种输出数据,这样状态信息和控制信息也通过数据总线来传送。为了区别输入数据和状态信息,数据口和状态口必须有不同的口地址;同样区别输出数据和控制信息,数据口和控制口也有不同的口地址。三、I/0端口的编址(寻址)方式1、端口和存储单元统一编址把I/O端口作为存储器的一个单元看待,故每个I/O端口占用存储器的一个地址:从输入端口输入一数据即为一次存储器读操作,从输出端口输出一数据即为一次存储器写操作。特点:a、CPU对外设的操作可使用全部的存储器指令,不需专门的I/O指令;b、端口地址占用内存空间,使内存容量减少。2、I/0端口单独编址I/O端口和存储器分别建立两个地址空间,单独编址。特点:a、CPU有专门的指令专用端口b、端口地址不占内存空间。IBMPC端口地址分配20-21中断控制器8259A40-43时钟/定时器60-63可编程序外围接口芯片8255A200-20F游戏I/O适配器378-32A并行接口打印机控制器I/O指令IN:端口输入OUT:端口输出说明:1、端口地址范围:0~655352、累加器AX/AL,端口直接/间接寻址INAL,NINAX,NINAL,DXINAX,DX3、IN/OUT指令不影响标志位INAL,20HMOVDX,0400HINAL,DXMOVDX,400HMOVAL,86HOUTDX,AL程序查询控制方式接受数据之前,CPU首先要查询输入数据是否准备好;输出数据之前,CPU首先要查询输出设备是否空闲好,只有确认条件具备才传送,否则CPU就等待。流程如下图故I/O端口除数据寄存器外,还必须有传送状态信息的寄存器。读状态信息数据准备好?读数据→ALYN输入程序流程AGAIN:INAL,状态口地址TESTAL,80HJZAGAININAL,数据口地址读状态信息输出设备忙?输出数据AL→数据端口NY输出程序流程准备输出数据AGAIN:INAL,状态口地址TESTAL,01HJZAGAINMOVAL,某数OUT数据口地址,AL中断基本概念1.什么是中断、中断源、中断服务程序?在CPU执行程序的过程中,由于出现了某个事件,CPU暂停当前程序,而转去执行处理该事件的程序,处理完后,返回被暂停的程序处继续执行,这个过程称为中断。引起中断的事件称作中断源,处理该事件的程序称作中断服务程序(InterruptServiceRoutine,简称ISR)。实现中断的硬件及软件称为中断系统。非屏蔽中断请求中断逻辑INTnINTO除法错单步n401CPU2NMI8259A可编程中断控制器(PIC)IR0系统定时器IR1键盘IR2彩色/图形接口IR3保留IR4串行通讯口IR5保留IR6软盘IR7打印机INTR08090A0B0C0D0E0F80x86中断源:2、中断请求、中断响应、中断屏蔽、开中断、关中断另见3、外中断(硬件中断)、内中断(软件中断)中断优先级4、中断号80x86系统允许256种中断,每种中断对应0~255之间唯一的编号,称为中断号或中断类型号。5.中断向量与中断向量表每种中断都有一个与之对应的中断服务程序。在实模式下,将中断服务程序的入口地址称作中断向量,存放256个中断向量的内存区域称为中断向量表。每个中断向量占4个字节,用32位分段地址来描述。中断向量表位于内存地址00000H~003FFH,共1KB(256*4B)。对于中断号n,中断向量所在地址为n~4n+3。例如,0号中断的向量位于地址00000H,1号中断的向量位于地址00004H,等等。中断向量表在系统复位时初始化。类型0的(IP)类型0的(CS)类型1的(IP)类型1的(CS)类型N的(IP)类型N的(CS)类型255的(IP)类型255的(CS)00000000044*N003FC中断向量—中断处理程序的入口地址(段址):(偏址)中断向量表用户可利用保留的中断类型号扩充自己需要的中断功能。8086中断0H除以零1H单步(用于DEBUG)2H非屏蔽中断3H断点指令(用于DEBUG)BH异步通讯(secondary)CH异步通讯(primary)DH硬磁盘EH软磁盘FH并行打印机4H溢出5H打印屏幕6H保留7H保留8259中断向量8H定时器9H键盘1DH显示器参量表1EH软盘参量表1FH图形表AH彩色/图形BIOS中断10H屏幕显示11H设备检验12H测定存储器容量13H磁盘I/O14H串行通讯口I/O15H盒式磁带I/O16H键盘输入17H打印机输出18HBASIC入口代码19H引导装入程序1AH日时钟提供给用户的中断1BHCtrl-Break控制的软中断1CH定时器控制器的软中断数据表指针DOS中断20H程序结束21H系统功能调用22H结束退出23HCtrl-Break退出24H严重错误处理25H绝对磁盘读功能26H绝对磁盘写功能27H驻留退出28H-2EHDOS保留2FH打印机30H-3FHDOS保留BASIC中断40H-5FH保留60H-67H用户软中断68H-7FH保留80H-85H由BASIC保留86H-F0HBASIC中断F1H-FFH保留进一步说明:中断的中断响应当中断发生时,由硬件自动完成下列工作:(1)标志寄存器FLAGS进栈。(2)置IF=0,TF=0。(3)返回地址(CS:IP)进栈。(4)根据中断号n,从地址0:n×4取出4字节的中断向量,低字送IP,高字送CS。(5)转去执行中断向量所指的中断服务程序。软件部分主程序:为响应中断做准备工作:1、设置中断相量(2、设置设备的中断屏蔽位3、设置开中断STI)中断子程序1、保存reg内容;2、如允许中断嵌套,则开中断;3、处理中断;4、关中断;5、中断结束命令(EOI);6、恢复reg内容IRET中断的指令STI;开中断CLI;关中断INTn;软件中断IRET;中断返回指令中断屏蔽寄存器21H中断命令寄存器20H76543210EOI:中断结束位R,SL:控制中断请求端的优先级(IR0---IR7)L2-L0:指定IR0---IR7中优先级最低的中断请求。RSLEOI00L2L1L0从外设发出中断请求到CPU响应中断,有两个控制条件起决定作用:外设请求是否屏蔽CPU是否允许响应中断这两个条件分别由8259A的中断屏蔽寄存器(IMR)和标志寄存器(PSW)中的中断允许位IF控制。中断屏蔽寄存器的I/O端口地址为21H76543210打印机硬盘COM1COM2键盘定时器例只允许键盘中断MOVAL,11111101BOUT21H,AL返回
本文标题:汇编中断
链接地址:https://www.777doc.com/doc-3264323 .html