汇编语言+第12章+输入输出与中断

上传人:xh****66 文档编号:61660122 上传时间:2018-12-08 格式:PPT 页数:60 大小:147.50KB
返回 下载 相关 举报
汇编语言+第12章+输入输出与中断_第1页
第1页 / 共60页
汇编语言+第12章+输入输出与中断_第2页
第2页 / 共60页
汇编语言+第12章+输入输出与中断_第3页
第3页 / 共60页
汇编语言+第12章+输入输出与中断_第4页
第4页 / 共60页
汇编语言+第12章+输入输出与中断_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《汇编语言+第12章+输入输出与中断》由会员分享,可在线阅读,更多相关《汇编语言+第12章+输入输出与中断(60页珍藏版)》请在金锄头文库上搜索。

1、第十二章 输入输出与中断,12.1 输入输出指令 12.2 中断指令 12.3 外同步指令和空操作指令 12.4 CPU与外设间的数据传送 12.5 中断系统概述 12.6 8086/8088的中断系统 12.7 8256A中断控制器及其程序设计 12.8 中断程序设计方法 12.9 IBM PC的BIOS调用及DOS功能调用,12.1 输入输出指令,1. IN 输入指令 指令汇编格式:IN acc,port 操作:acc(port) 将指定端口的内容(字或字节)传送到累加器AX或AL中。 受影响的标志位:无,2. OUT 输出指令 指令汇编格式:OUT port ,acc 操作: port

2、acc 将累加器AX或AL的内容传送到指定端口。 受影响的标志位:无,12.2 中断指令,1. INT 中断指令 指令汇编格式:INT n 操作:SPSP2,(SP,SP+1)F IF 0,TF 0 SP SP2,(SP,SP+1) CS SP SP2,(SP,SP+1) IP CS (n*4+2,n*4+3) IP (n*4,n*4+1) 受影响的标志位:IF,TF 说明:n称为中断类型号,必须是0255之间的立即数。,8086/8088在其内存的前1K字节(地址为00000H003FFH)建立了一个中断向量表。表中内容分为256项,对应于类型号0255,每一项占用4个字节单元,用来存放相应

3、类型的中断服务程序的入口地址,高两个字节存放服务程序的入口地址的段地址部分。低两个字节存放偏移量部分。其结构如下:,类型0的中断服务 程序入口地址 类型1的中断服务 程序入口地址 类型2的中断服务 程序入口地址 : : 类型255的中断服务 程序入口地址,00000H 00003H,003FCH 003FFH,00008H 0000BH,00004H 00007H,0000CH,003FBH,2. INTO 溢出中断指令 指令汇编格式:INTO 操作:如果OF=1,则产生一个中断类型为4的软件中断;否则,不产生任何操作。即:如果OF=1,则 SPSP2,(SP,SP+1)F IF 0,TF 0

4、 SP SP2,(SP,SP+1) CS SP SP2,(SP,SP+1) IP CS (4*4+2,4*4+3) IP (4*4,4*4+1) 受影响的标志位:IF,TF 说明:INTO指令一般用在算术运算指令后面,在有溢出的情况下,启动一个溢出中断服务程序。,3. IRET 中断返回指令 指令汇编格式:IRET 操作:IP (SP,SP+1),SP SP+2 CS (SP,SP+1),SP SP+2 F (SP,SP+1),SP SP+2 受影响的标志位:所有状态标志位。 说明:IRET指令是任何中断服务程序的最后一条要执行的指令,它使CPU从中断服务程序返回被中断程序的断点处继续执行。,

5、12.3 外同步指令和空操作指令 8086/8088CPU提供了一种与外部设备同步和使用协处理器(8087或8089)为其完成其本身不能完成的工作的指令。,1. HLT 停机指令 指令汇编格式:HLT 操作:使CPU处于暂停状态(动态停机)。 受影响的标志位:无 说明:CPU执行HLT指令后,就停止执行后续指令,只有当产生中断请求信号(发生中断)或有复位信号(RESET线变成低电平)时,才能退出暂停状态。中断信号产生后,CPU停止执行HLT指令,而去执行中断服务程序,执行IRET后,CPU返回被中断程序的断点处,执行HLT的后续指令。,2. WAIT 等待指令 指令汇编格式:WAIT 操作:C

6、PU进入等待状态,检测TEST信号线,当此信号线为低电平时,退出等待状态,执行WAIT的后续指令。 受影响的标志位:无 说明:CPU执行WAIT后,只有当TEST信号变成低电平时,才能执行WAIT的后续指令。除此之外,任何情况也不能使CPU停止执行WAIT指令(退出等待状态)。,3. ESC 交权指令 指令汇编格式:ESC ext_op,src 操作:如果src是寄存器操作数,则将其内容放置在数据总线上,如果src是存储器操作数,CPU则从存储器中取出操作数放置在数据总线上。 受影响的标志位:无 说明:ESC指令称为换码指令,它使协处理器能够从8086/8088的指令流中获得一个操作码和一个操

7、作数。 指令中exp_op为操作码,是一个6位二进制的数据,src是3.4节介绍的寻址方式38中的任何一种方式。,4. LOCK 锁定指令 指令汇编格式:LOCK 操作:在执行某指令期间保持一个总线锁定信号(LOCK引线变为低电平)。 受影响的标志位:无 说明:LOCK指令是一个封锁前缀,它可以加在任何指令的前面,使CPU在执行该指令期间保持一个总线锁定信号。在多处理机系统中用其实现对共享资源的存取控制。 例如,在重复数据串传送指令前面加上一个封锁前缀(LOCK REP MOVS),将阻止系统中其它处理器在重复数据串执行的整个过程中对存储器进行存取。,5. NOP 空操作指令 指令汇编格式:N

8、OP 操作:无 受影响的标志位:无 说明:空操作指令NOP使CPU不进行任何操作,但要花费3个时钟周期,然后执行其后续指令,一般用于编制软件延时程序或用纠错程序调试程序时抹掉多余的指令。,12.4 CPU与外设间的数据传送,12.4.1 输入输出接口,CPU,外 部 设 备,数据寄存器,状态寄存器,控制寄存器,端口地址,数据,控制信号,数据,状态信号,控制信号,I/O接口,12.4.2 CPU与外设之间的接口信号,2. 状态信息 它用来反映外设接口电路或外设的状态,CPU可根据这些状态信息决定对外设的操作或控制。,3. 控制信息 用于控制输入输出设备装置的启动或停止,设备的工作方式等。,以上三

9、种不同性质的信息通过不同的端口传送,每个端口都有自己的地址,CPU寻址的是端口地址,而不是笼统的外设。,1. 数据信息 这是CPU和外设之间真正要交换的信息。,12.4.3 CPU与外设间的数据传送方式 (1)无条件I/O方式; (2)查询I/O方式; (3)中断I/O方式; (4)DMA(直接存储器存取)方式。,1. 无条件传送 当外设的数据传送是定时的,且时间是已知的情况下,CPU定时取入数据,而当CPU去取数据时,数据肯定已准备好;或CPU定时发送数据,外设肯定已准备好接收数据,这时采用无条件传送。 无条件传送是最简单的数据传送方式。,2. 查询传送方式 在外设比CPU工作速度低得多的情

10、况下,在输入时,CPU要查询外设是否就绪(准备好输入数据),若就绪,才能读入数据;在输出时,则不断查询外设是否空闲(准备好接收数据),若空闲,则CPU输出一个数据。,例如,从外部设备端口输入并存入内存一组数据,设SR为状态寄存器,其第7位为就绪位,DR为数据寄存器,则程序段如下: : MOV CX,0050H MOV BX,0200H WAIT: IN AL,SR TEST AL,80H JZ WAIT IN AL,DR MOV BX,AL INC BX LOOP WAIT :,3. 中断传送 所谓中断传送方式就是,当CPU与外设交换数据时,无须连续不断地查询外设的状态,而是在需要时,由外设主

11、动地向CPU提出请求,让CPU为其服务。在输入时,当外设数据就绪时,外设向CPU提出中断请求,CPU接到该请求后,暂停当前程序的执行,转去执行相应的中断服务程序,完成所需的数据输入,然后再返回去执行原来中断了的程序;在输出时,当外设空闲时,外设向CPU提出中断请求,CPU接到该请求后,暂停当前程序的执行,转去执行相应的中断服务程序,完成所需的数据输出,然后再返回去执行原来中断了的程序。采用中断传送方式,可以大大提高系统的输入输出效率,节省大量的CPU时间。,12.5 中断系统概述,中断:当CPU正在执行某程序时,由于外界事件的需要向CPU发出申请,CPU暂停现行程序的执行而转去处理临时发生的事

12、件,处理完后再返回到被中断程序的断点处,继续向下执行,这个过程称为中断。 在中断过程中执行的事件处理程序称为中断服务程序。,(1)一般的输入输出设备。如键盘、打印机、通信接口等。,(2)数据通道中断源。如磁盘。,(3)实时时钟。,(4)故障源。,(5)为调试程序而设置的中断源。,12.5.1 中断请求与中断源 I/O设备或者事件需要CPU中断处理时,必须向CPU发出中断请求信号。该信号作为CPU的输入,当CPU收到该信号时,可引起中断。 引起中断的原因,或者说发出中断请求信号的源称为中断源。通常,中断源有以下几种:,12.5.2 中断系统的功能,(1)实现中断与返回,(2)能实现优先级排队,(

13、3)能实现中断嵌套,12.5.3 中断响应 1. CPU响应中断的条件 (1)有中断请求信号。 (2)中断请求没有被屏蔽。 (3)CPU的中断是开放的。 (4)CPU在现行指令执行完毕时,响应中断。,(1)关中断。 (2)保存断点。 (3)保护现场。 (4)给出中断服务程序入口,并转入该服务程序。 (5)恢复现场。 (6)从中断返回。,2. 中断响应时及中断响应期间CPU应做的工作,12.6 8086/8088的中断系统,非屏蔽中断请求,中断逻辑,INT n (指令),INTO (指令),除法 错误,单步中断 (TF=1),8259A PIC,可屛蔽中断请求,NMI,INTR,12.6.1 外

14、部中断 8086/8088CPU有两种中断请求输入,即非屏蔽中断请求输入和可屏蔽中断请求输入。用户不能禁止的中断称为非屏蔽中断,这种中断一旦出现,CPU必须立即响应,所以非屏蔽中断总是用于处理紧急事件。用户能控制的中断称为可屏蔽中断,用户可通过软件禁止可屏蔽中断的中断源发中断请求信号,或者关闭中断而对发出的请求不作响应。,1. 可屏蔽中断,(1)为可屏蔽中断设置的指令。,(2)8259A中断控制器。 用来对可屏蔽中断源进行管理,其主要任务是接收外部设备的中断请求,然后根据优先级的高低和预先规定的排优规则决定哪个设备能够申请中断,由8259A向CPU发中断请求信号。当CPU响应此请求并给出中断应

15、答之后,8259A还要把一个中断方式码通过数据总线交给CPU,供CPU识别是谁发出的中断请求。,每个8259A有8个中断请求输入端,因此单个8259A可以处理8级中断。在不增加任何硬件线路的情况下,通过级连8259A最多可以管理64级中断。,8259A INTA INT IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 SP/EN,到8086,INTA CAS0 CAS1 INT CAS2 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 SPEN,到8086,IR0 INTA IR1 IR2 INT IR3 IR4 CAS0 IR5 CAS1 IR6 CAS2 IR7 SP/EN,IR0 INTA IR1 IR2 INT IR3 IR4 CAS0 IR5 CAS1 IR6 CAS2 IR7 SP/EN,8259A,:,中断请求输入,(最多64条),8259A,8259A,(3)CPU对可屏蔽中断的响应。 当外设通过8259A向CPU提出申请,且CPU的IF=1时,CPU就挂起正在处理的任务,进行中断响应和处理。整个过程如下: 响应中断; 读取8259A送来的方式码; 将标志寄存器F的内容压栈; 清除中断允许标志位IF和陷阱标志位TF; 将代码段寄存器CS和指令指针IP的内容压栈; 根据方式码找到服务程序

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号