汇编第07章输入输出程序设计_第1页
汇编第07章输入输出程序设计_第2页
汇编第07章输入输出程序设计_第3页
汇编第07章输入输出程序设计_第4页
汇编第07章输入输出程序设计_第5页
已阅读5页,还剩56页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、6.1 I/O接口概述接口概述 为什么需要为什么需要I/O接口(电路)?接口(电路)? 微机的外部设备多种多样微机的外部设备多种多样 工作原理、驱动方式、信息格式、以及工作速度方面工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大彼此差别很大 它们不能与它们不能与CPU直接相连直接相连 必须经过中间电路再与系统相连必须经过中间电路再与系统相连 这部分电路被称为这部分电路被称为I/O接口电路接口电路第六章第六章 输入输入/输出及中断系统输出及中断系统 什么是什么是I/O接口(电路)?接口(电路)? I/O接口是位于接口是位于CPU与外设间用来协助完成与外设间用来协助完成数据传送和控制任务

2、的逻辑电路数据传送和控制任务的逻辑电路 PC机系统板的可编程接口芯片、机系统板的可编程接口芯片、I/O总线槽总线槽的电路板(适配器)都是接口电路的电路板(适配器)都是接口电路一、一、 I/O接口的主要功能接口的主要功能 对输出数据进行缓冲和锁存对输出数据进行缓冲和锁存输出接口有锁存作用,解决速度匹配问题(输出接口有锁存作用,解决速度匹配问题(CPU的高的高速与外设的慢速矛盾)速与外设的慢速矛盾)内内部部数数据据总总线线外外部部数数据据引引脚脚锁存控制锁存控制DCQDCQDCQ输入接口有缓冲隔离作用输入接口有缓冲隔离作用内内部部数数据据总总线线外外部部数数据据引引脚脚选通选通缓冲器缓冲器 对信号

3、的形式和数据的格式进行变换对信号的形式和数据的格式进行变换微机直接处理:数字量、开关量微机直接处理:数字量、开关量 对对I/O端口进行寻址端口进行寻址 与与CPU和和I/O设备进行联络设备进行联络二、二、 I/O接口的典型结构接口的典型结构控制总线控制总线CB地址总线地址总线ABI/O接口电路接口电路数据数据控制控制状态状态数据总线数据总线DBCPU外设外设控制寄存器控制寄存器状态寄存器状态寄存器数据寄存器数据寄存器1. 接口电路的内部结构接口电路的内部结构 CPU与外设主要有数据、状态和控制信息与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部:需要相互交换,于是从应用角度看

4、内部: 数据寄存器数据寄存器 保存外设给保存外设给CPU和和CPU发往外设的数据发往外设的数据 状态寄存器状态寄存器 保存外设或接口电路的状态保存外设或接口电路的状态 控制寄存器控制寄存器 保存保存CPU给外设或接口电路的命令给外设或接口电路的命令2. 接口电路的外部特性接口电路的外部特性 面向面向CPU一侧的信号:一侧的信号: 用于与用于与CPU连接连接 主要是数据、地址和控制信号主要是数据、地址和控制信号 面向外设一侧的信号:面向外设一侧的信号: 用于与外设连接用于与外设连接 提供的信号五花八门提供的信号五花八门 功能定义、时序及有效电平等差异较大功能定义、时序及有效电平等差异较大3. 接

5、口芯片的分类接口芯片的分类 接口电路核心部分往往是一块或数块大接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片):规模集成电路芯片(接口芯片): 通用接口芯片通用接口芯片 支持通用的数据输入输出和控制的接口芯片支持通用的数据输入输出和控制的接口芯片 面向外设的专用接口芯片面向外设的专用接口芯片 针对某种外设设计、与该种外设接口针对某种外设设计、与该种外设接口 面向微机系统的专用接口芯片面向微机系统的专用接口芯片 与与CPU和系统配套使用,以增强其总体功能和系统配套使用,以增强其总体功能4. 接口电路的可编程性接口电路的可编程性 许多接口电路具有多种功能和工作方式,许多接口电路具有多

6、种功能和工作方式,可以通过编程的方法选定其中一种可以通过编程的方法选定其中一种 接口需要进行物理连接,还需要编写接接口需要进行物理连接,还需要编写接口软件口软件 接口软件有两类:接口软件有两类: 初始化程序段初始化程序段设定芯片工作方式等设定芯片工作方式等 数据交换程序段数据交换程序段管理、控制、驱动外设,管理、控制、驱动外设,负责外设和系统间信息交换负责外设和系统间信息交换三三 、 I/O端口的编址端口的编址接口电路占用的接口电路占用的I/O端口有两类编排形式端口有两类编排形式 I/O端口单独编址端口单独编址 I/O地址空间独立于存储地址空间地址空间独立于存储地址空间 如如8086/8088

7、 I/O端口与存储器统一编址端口与存储器统一编址 它们共享一个地址空间它们共享一个地址空间 如如M6800、MCS51I/O端口单独编址端口单独编址 优点:优点: I/O端口的地址空间独立端口的地址空间独立 控制和地址译码电路相对控制和地址译码电路相对简单简单 专门的专门的I/O指令使程序清晰指令使程序清晰易读易读 缺点:缺点: I/O指令没有存储器指令丰指令没有存储器指令丰富富80 x86采用采用I/O端口独立编址端口独立编址内存内存空间空间I/O空间空间FFFFF0FFFF0I/O端口与存储器统一编址端口与存储器统一编址 优点:优点: 不需要专门的不需要专门的I/O指令指令 I/O数据存取

8、与存储器数据数据存取与存储器数据存取一样灵活存取一样灵活 缺点:缺点: I/O端口要占去部分存储器端口要占去部分存储器地址空间地址空间 程序不易阅读(不易分清程序不易阅读(不易分清访存和访问外设)访存和访问外设)内存内存部分部分I/O部分部分存存储储空空间间0FFFFF 四、输入四、输入/ /输出指令输出指令l PC系列机只使用系列机只使用A9A0寻址寻址1024个个I/O端口端口:000H3FFH 1、输入指令使用方法、输入指令使用方法 IN AL,PORT ; PORT为为8位端口地址位端口地址:00HFFH 或者或者 MOV DX,PORT ;用用DX间接端口寻址间接端口寻址:000H3

9、FFH IN AL,DX 2、输出指令使用方法、输出指令使用方法 OUT PORT,AL ; PORT为为8位端口地址位端口地址:0FFH 或者或者 MOV DX,PORT ;用用DX间接端口寻址间接端口寻址:000H3FFH OUT DX ,AL其中:把其中:把AL改为改为AX则进行则进行16位的输入输出位的输入输出 五、五、 I/O地址的译码地址的译码 I/O地址的译码方法与存储器地址的译码方法一地址的译码方法与存储器地址的译码方法一样,但有它的特点:样,但有它的特点: 每个接口电路通常占用少数几个每个接口电路通常占用少数几个I/O地址。地址。 I/O地址不象内存地址,不那么强调地址的连续

10、性。地址不象内存地址,不那么强调地址的连续性。 部分译码时,可能中间地址线不连接,也有最低地址部分译码时,可能中间地址线不连接,也有最低地址线不连接的情况。线不连接的情况。 常采用门电路进行地址译码或线选译码常采用门电路进行地址译码或线选译码 除采用译码器、门电路进行译码外,除采用译码器、门电路进行译码外,I/O地址译码还地址译码还经常采用可编程逻辑器件经常采用可编程逻辑器件PLD。 为了给系统一定的选择余地,有些接口电路采用数字为了给系统一定的选择余地,有些接口电路采用数字比较器、开关或跳线器等进行可选择的地址译码比较器、开关或跳线器等进行可选择的地址译码IBM PC/XT主机板的主机板的I

11、/O译码电路译码电路Y0 Y1 Y2 Y3 Y4 Y5Y6 Y7A5A6 A7A8A9 AEN-IOWAB CG2BG2AG174LS138-DMA CS(8237)-INTR CS(8259)-T/C CS(8253)-PPI CS(8255)-WRTDMAPG(写写DMA页面寄存器)页面寄存器)-WRTNMIREG(写写NMI屏蔽寄存器)屏蔽寄存器)6.2 I/O 数据传送方式数据传送方式 程序控制下的数据传送程序控制下的数据传送通过通过CPU执行程序中执行程序中的的I/O指令来完成传送,又分为:指令来完成传送,又分为: 无条件传送无条件传送 查询传送查询传送 中断传送中断传送 直接存储器

12、存取(直接存储器存取(DMA)传送请求由外设传送请求由外设向向DMA控制器(控制器(DMAC)提出,后者向提出,后者向CPU申申请总线,最后请总线,最后DMAC利用系统总线来完成外设和利用系统总线来完成外设和存储器间的数据传送存储器间的数据传送 I/O处理机处理机CPU委托专门的委托专门的I/O处理机来管理处理机来管理外设,完成传送和相应的数据处理外设,完成传送和相应的数据处理1、 无条件传送方式及其接口无条件传送方式及其接口 在在CPU与慢速变化的设备交换数据时,可以认为与慢速变化的设备交换数据时,可以认为它们总是处于它们总是处于“就绪就绪”状态,随时可以进行数据状态,随时可以进行数据传送,

13、这就是无条件传送,或称立即传送、同步传送,这就是无条件传送,或称立即传送、同步传送传送 适合于简单设备,如适合于简单设备,如LED 数码管、按键数码管、按键/按纽等按纽等 无条件传送的接口和操作均十分简单无条件传送的接口和操作均十分简单 这种传送有前提:外设必须随时处于就绪状态这种传送有前提:外设必须随时处于就绪状态IOR三三态态缓缓冲冲器器OEI/O装装置置地地址址译译码码器器D7D0A9A0AEN0160HMOV DX, 160HIN AL, DXMOV DX, 160HIN AL, DX74LS244+5V10K x 8G1 G2数据总线数据总线CSIOR地地址址译译码码器器数数据据锁锁

14、存存器器AENA9A0IOW160H输输出出设设备备D7D0MOV DX, 160HMOV AL, XXHOUT DX, ALMOV DX, 160HMOV AL, BXOUT DX, AL+5V74LS373300 x 8LE OE数据总线数据总线CSIOWK7K1K0+5VD0D7A0A9CLKLS06反相反相驱动器驱动器LS2738D锁存器锁存器LS244三态三态缓冲器缓冲器300H译码译码+5VLED0LED7-GIOWIORAENnext: mov dx,300h;DX指向数据端口指向数据端口in al,dx;从输入端口读开关状态从输入端口读开关状态not al;反相反相out dx

15、,al;送输出端口显示送输出端口显示call delay;调子程序延时调子程序延时jmp next;重复重复2、查询传送方式及其接口、查询传送方式及其接口 CPU先了解(查询)外设的工作状态,在外设先了解(查询)外设的工作状态,在外设就绪(可以交换信息的情况下)实现数据的输就绪(可以交换信息的情况下)实现数据的输入或输出入或输出 对多个外设的情况,则对多个外设的情况,则CPU按一定顺序依次查按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交询(轮询)。先查询的外设将优先进行数据交换换 查询传送的特点是:工作可靠,适用面宽,但查询传送的特点是:工作可靠,适用面宽,但传送效率低传送效率低 查

16、询环节查询环节 寻址状态口寻址状态口 读取状态寄存器的标志位读取状态寄存器的标志位 若不就绪就继续查询,直至就绪若不就绪就继续查询,直至就绪 传送环节传送环节 寻址数据口寻址数据口 是输入,通过输入指令从数据口读入数据是输入,通过输入指令从数据口读入数据 是输出,通过输出指令向数据口输出数据是输出,通过输出指令向数据口输出数据输入状态输入状态就绪?就绪?数据交换数据交换YN1位位三态三态缓冲器缓冲器-IOR+5V8D锁存器锁存器8位位三态三态缓冲器缓冲器译码译码 A0A15300H301HD0D7D0输入输入设备设备-IOR-STBRQDmov dx,300h;DX指向状态端口指向状态端口st

17、atus: in al,dx ;读状态端口读状态端口test al,01h ;测试标志位测试标志位D0jz status ;D00,未就绪,继续查询未就绪,继续查询inc dx ;D01,就绪,就绪,DX指向数据端口指向数据端口in al,dx ;从数据端口输入数据从数据端口输入数据8D锁存器锁存器译码译码1位位三态三态缓冲器缓冲器RQ A0A15300H301HD0D7D7D+5V-ACK-IOW-IOR输出输出设备设备mov dx,300h;DX指向状态端口指向状态端口status: in al,dx;读取状态端口的状态数据读取状态端口的状态数据test al,80h;测试标志位测试标志位

18、D7jnz status;D71,未就绪,继续查询未就绪,继续查询inc dx ;D70,就绪,就绪,DX指向数据端口指向数据端口mov al,buf;变量变量buf送送ALout dx,al;将数据输出给数据端口将数据输出给数据端口3、中断传送方式、中断传送方式程序程序断点断点主程序主程序中断请求中断请求为为外外设设继继续续执执行行返回断点返回断点 CPU在执行程序在执行程序中,被内部或外中,被内部或外部的事件所打断,部的事件所打断,转去执行一段预转去执行一段预先安排好的中断先安排好的中断服务程序;服务程序; 服务结束后,又服务结束后,又返回原来的断点,返回原来的断点,继续执行原来的继续执行

19、原来的程序程序提提供供服服务务中断服务程序中断服务程序入口入口n中断传送是一种效率更高的程序传送方式中断传送是一种效率更高的程序传送方式n进行传送的中断服务程序是预先设计好的进行传送的中断服务程序是预先设计好的n中断请求是外设随机向中断请求是外设随机向CPU提出的提出的nCPU对请求的检测是有规律的:在每条指令对请求的检测是有规律的:在每条指令的最后一个时钟周期采样中断请求输入引脚的最后一个时钟周期采样中断请求输入引脚三态三态缓冲器缓冲器+5V8D锁存器锁存器8位位三态三态缓冲器缓冲器RQ 译码译码8001H中断向量号中断向量号D0D7INTRD输入输入设备设备中断允许中断允许触发器触发器A0

20、A9中断请求中断请求触发器触发器-IOR-INTA-STB1.中断请求(外设)中断请求(外设)2.中断响应(中断响应(CPU)3.关中断(关中断(CPU)4.断点保护(断点保护(CPU)5.中断识别(硬件中断识别(硬件/软件)软件)6. 现场保护(用户)现场保护(用户)7. 中断服务(用户)中断服务(用户)8. 恢复现场(用户)恢复现场(用户)9. 开中断(开中断(CPU/用户)用户)10. 中断返回(用户)中断返回(用户)中断服务是进行数据交中断服务是进行数据交换的实质性环节换的实质性环节4、DMA传送方式传送方式 希望克服程序控制传送的不足:希望克服程序控制传送的不足:(约为几十(约为几十

21、KB/秒)秒)外设外设CPU存储器存储器外设外设CPU存储器存储器 直接存储器存取直接存储器存取DMA:不经不经CPU,不用指令不用指令 外设外设存储器(存储器(DMA写)写) (可达几(可达几MB/秒)秒) 外设外设存储器(存储器(DMA读)读) 扩展:外设扩展:外设 外设外设 CPU出让系统总线(输出高阻),由出让系统总线(输出高阻),由DMA控制器控制器(DMAC)接管系统总线接管系统总线传送过程:传送过程: CPU对对DMA控制器进行初始化设置控制器进行初始化设置 外设、外设、DMAC、CPU, 3者通过应答信号建立联系:者通过应答信号建立联系:CPU将总线暂交将总线暂交DMAC控制,

22、事后再将控制权返还。控制,事后再将控制权返还。 DMA传送传送 DMA读:存储器读:存储器 外设外设 DMA写:存储器写:存储器 外设外设 DMAC的功能:的功能: 对存储器寻址地址动加对存储器寻址地址动加1/减减1 计数器减计数器减1 判断传送是否完成判断传送是否完成DMA传送原理示意图 外设发出外设发出DMADMA请求请求 DMAC DMAC向向CPUCPU申请总线申请总线 CPU CPU完成当前总线周期后完成当前总线周期后响应响应, ,并释放总线控制权并释放总线控制权 DMAC DMAC得到总线控制权,并发出得到总线控制权,并发出DMADMA响应信号响应信号 由由DMACDMAC发出各种

23、控制信号,控制外设与存储器之发出各种控制信号,控制外设与存储器之 间的数据传送间的数据传送 数据传送完后,数据传送完后,DMACDMAC撤销撤销HOLDHOLD信号信号 CPUCPU释放释放HLDAHLDA信号,并重新控制总线信号,并重新控制总线系统总线系统总线CPUDMAC存储器存储器外设接口外设接口AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDADRQDACKAENIOWIORMEMWMEMRAB、DBAB、DBAB、DBAB、DBHLDA发存储器地址发存储器地址传送数据传送数据传送结束?传送结束?DMA结束结束修改地址指针修改地址指针传送方式的比较传送

24、方式的比较 无条件传送:慢速外设需与无条件传送:慢速外设需与CPU保持同步保持同步 查询传送:查询传送: 简单实用,效率较低简单实用,效率较低 中断传送:外设主动,可与中断传送:外设主动,可与CPU并行工作,并行工作,但每次传送需要大量额外时间开销但每次传送需要大量额外时间开销 DMA传送:传送:DMAC控制,外设直接和存储控制,外设直接和存储器进行数据传送,适合大量、快速数据传送器进行数据传送,适合大量、快速数据传送6.3 中断概述中断概述一、基本概念一、基本概念1、 中断中断 在在CPU执行程序的过程中,由于出现了某个事件,执行程序的过程中,由于出现了某个事件,CPU暂停当前程序,而转去执

25、行处理该事件的程序,处理暂停当前程序,而转去执行处理该事件的程序,处理完后,返回被暂停的程序处继续执行,这个过程称为中断。完后,返回被暂停的程序处继续执行,这个过程称为中断。2、中断源、中断源引起中断的事件称作中断源引起中断的事件称作中断源 中断逻辑中断逻辑INTO指令指令单步单步中断中断除法除法错误错误INT N指令指令CPUNMI8259A中断中断控制器控制器IR0 定时器定时器 IR1 键盘键盘IR2显示器显示器IR3保留(通信)保留(通信)IR4串口串口IR5保留保留IR6软盘软盘IR7保留(打印机)保留(打印机)外外设设中中断断源源 -INTA可屏蔽中断申请可屏蔽中断申请 INTR不

26、可屏蔽中断申请不可屏蔽中断申请可屏蔽中断源可屏蔽中断源不可屏蔽中断源不可屏蔽中断源内部中断内部中断3、 中断号中断号 80 x86系统允许系统允许256种中断,每种中断对应种中断,每种中断对应0 255之间之间唯一的编号,称为中断号或中断类型号。唯一的编号,称为中断号或中断类型号。 处理该事件的程序称作中断服务程序(处理该事件的程序称作中断服务程序(Interrupt Service Routine,简称简称ISR)。)。 实现中断的硬件及软件称为中断系统。实现中断的硬件及软件称为中断系统。4、中断的作用、中断的作用 实时、并发、多任务实时、并发、多任务二、中断分类二、中断分类1、内部中断、内

27、部中断内部机制产生内部机制产生除法错中断(除法错中断(0号)号)除运算结果溢出时产生除运算结果溢出时产生指令中断(指令中断(n号)号)执行执行int n指令后产生(操作码指令后产生(操作码CDH)断点中断(断点中断(3号)号)执行执行int 3指令(单字节指令操作码指令(单字节指令操作码CCH )用于在调试中设置断点,程序遇断点则中断用于在调试中设置断点,程序遇断点则中断溢出中断(溢出中断(4号)号)执行执行into指令,且前面运算有溢出指令,且前面运算有溢出(OF=1)时产生时产生单步中断(单步中断(1号)号)TF标志置标志置1后,每执行一条子指令将发后,每执行一条子指令将发生一次生一次2、

28、外部中断、外部中断外部引脚触发外部引脚触发可屏蔽中断(外设提供向量号)可屏蔽中断(外设提供向量号)触发触发INTR引脚产生引脚产生非屏蔽中断(非屏蔽中断(2号)号) 触发触发NMI引脚产生引脚产生外部中断外部中断 外部中断是由于外部中断是由于8088外部通过外部通过CPU引脚提出中引脚提出中断请求而引起的中断断请求而引起的中断 非屏蔽中断(非屏蔽中断(NMI):): 向量号为向量号为2 外部通过非屏蔽中断外部通过非屏蔽中断NMI请求,必须响应请求,必须响应 非屏蔽中断主要用于处理系统的意外或故障(如奇偶校验非屏蔽中断主要用于处理系统的意外或故障(如奇偶校验或协处理器运算错误等)或协处理器运算错

29、误等) 可屏蔽中断(可屏蔽中断(INTR):): 向量号由中断控制器提供向量号由中断控制器提供 外部通过可屏蔽中断外部通过可屏蔽中断 INTR 请求,由标志位请求,由标志位 IF 控制是否控制是否响应;响应时将产生有效的响应;响应时将产生有效的 INTA 信号信号 可屏蔽中断主要用于外设中断请求(请求交换数据等服务)可屏蔽中断主要用于外设中断请求(请求交换数据等服务)IF控制位控制位 IF0:可屏蔽中断不会被响应(禁止中断,可屏蔽中断不会被响应(禁止中断,关中断,中断屏蔽)关中断,中断屏蔽) 系统复位,使系统复位,使IF0 任何一个中断被响应,使任何一个中断被响应,使IF0 执行指令执行指令C

30、LI,使使IF0 IF1:可屏蔽中断会被响应(允许中断,开可屏蔽中断会被响应(允许中断,开中断,中断开放)中断,中断开放) 执行指令执行指令STI,使使IF1 执行指令执行指令 IRET 后后IF 将恢复为中断前的状态将恢复为中断前的状态中断向量表1KB3FFH0H0号中断向量号中断向量IPCS中断向量表中断向量表 中断向量:指示中断服务程序的入中断向量:指示中断服务程序的入口地址,该地址包括:偏移地址口地址,该地址包括:偏移地址IP 、段地址段地址CS (共(共32位)位) 每个中断向量的低字是偏移地址、每个中断向量的低字是偏移地址、高字是段地址,需占用高字是段地址,需占用4个字节(低个字节

31、(低对低,高对高)。对低,高对高)。 8088 微处理器从物理地址微处理器从物理地址000H开始开始到到3FFH(1KB),依次安排各个中),依次安排各个中断向量,向量号从断向量,向量号从0到到255。 256个中断响亮所占用的个中断响亮所占用的1KB区域,区域,称中断向量表称中断向量表 中断向量的存放首址中断号中断向量的存放首址中断号N4NMIN软件中断软件中断INTRTF=1中断响应周期中断响应周期读中断向量号读中断向量号下条指令下条指令现行指令现行指令IF1NNNNYYYYY执行中断服务执行中断服务中断过程中断过程Y还有还有NMITEMP1标志寄存器入栈标志寄存器入栈TEMPTF,IFT

32、F0CS:IP入栈入栈获取中断向量获取中断向量执行服务程序执行服务程序弹出弹出CS:IP弹出标志寄存器弹出标志寄存器返回被中断程序返回被中断程序(1)(2)(3)(4)(5)NNY(6)单步中断单步中断中断优先级中断优先级 (1)查询中断的先后顺序决定了各中断源的)查询中断的先后顺序决定了各中断源的优先级别优先级别 软件中断软件中断 除法错中断除法错中断 指令中断指令中断 溢出中断溢出中断 非屏蔽中断非屏蔽中断 可屏蔽中断可屏蔽中断 单步中断单步中断 (2)中断嵌套)中断嵌套 运行中服程序时被优先权高的中断源中断运行中服程序时被优先权高的中断源中断中断指令中断指令 INT N;软中断,软中断,

33、N:0255,不能为硬中断不能为硬中断 INT与与CALL的主要区别的主要区别 CALL主要用来调用应用程序中的过程,而主要用来调用应用程序中的过程,而INT则用来调用系统服务则用来调用系统服务程序。程序。 过程可以有任意多个,而过程可以有任意多个,而80 x86系统最多只支持系统最多只支持256个中断服务程序。个中断服务程序。 对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中对过程的调用是指出过程地址,而对中断服务程序的调用则是给出中断号。断号。 INT总是段间调用。总是段间调用。 INT将标志寄存器和返回地址进栈,而将标志寄存器和返回地址进栈,而CALL指令只将返回地址进栈指令

34、只将返回地址进栈 IRET;中断返回中断返回 CLI;IF=0 STI;IF=1第四章汇编语言程序第四章汇编语言程序 4.12中断中断 三、三、中断程序设计中断程序设计 编写内部中断服务程序与编写子程序类似编写内部中断服务程序与编写子程序类似 利用过程定义伪指令利用过程定义伪指令PROC/ENDP 第第1条指令通常为开中断指令条指令通常为开中断指令STI 最后用中断返回指令最后用中断返回指令IRET 通常采用寄存器传递参数通常采用寄存器传递参数 主程序需要调用中断服务程序主程序需要调用中断服务程序 使用前,需要重新设置中断向量(入口地址)使用前,需要重新设置中断向量(入口地址) 利用利用INT

35、 n指令调用中断服务程序指令调用中断服务程序举例举例 例例 编写:编写: 80H 号中断服务程序号中断服务程序 功能:通过功能:通过BIOS功能调用功能调用INT 10H,显示以显示以“0”结尾的字符串。结尾的字符串。 入口参数:入口参数:DS:DX存字符串缓冲区首地址(段存字符串缓冲区首地址(段地址:偏移地址)。地址:偏移地址)。datasegmentintoffdw ? ;用于保存原中断向量将来恢复用于保存原中断向量将来恢复intsegdw ? ;用于保存原中断向量将来恢复用于保存原中断向量将来恢复intmsgdb A Instruction Interrupt !,0dh,0ah,0 ;

36、要显示的信息要显示的信息dataendscodesegmentassume cs:code,ds:datastart:mov ax,datamov ds,axcli;关中断关中断mov ax,35 80h ;读出原中断向量读出原中断向量,也可直接读也可直接读int 21hmov intoff,bx;保存偏移地址保存偏移地址mov intseg,es;保存段基地址保存段基地址push dsmov dx,offset new80hmov ax,seg new80hmov ds,axmov ax,25 80h ;设置新中断向量,也可直接写设置新中断向量,也可直接写int 21hsti;开中断开中断p

37、op dsmov dx,offset intmsgint 80h ;中断调用中断调用climov dx,intoffmov ax,intsegmov ds,axmov ax,2580h ;恢复原中断向量恢复原中断向量 int 21hstimov ax,4c00hint 21h;可以是其他程序可以是其他程序new80h proc sti ;开中断,允许中断嵌套开中断,允许中断嵌套 push ax ;保护现场保护现场 push bx push simov si,dxnew1:mov al,sicmp al,0 ;判是否串尾判是否串尾jz new2mov bx,0 ;调调BIOS中断中断mov ah

38、,0ehint 10hinc sijmp new1new2: pop si;恢复现场恢复现场 pop bx pop ax iret;中断返回中断返回new80h endpCodeendsend start特别注意:特别注意:中断服务程序中不能使中断服务程序中不能使用用DOS功能调用,否则功能调用,否则可能造成死机!可能造成死机!6.4 8259A中断控制器中断控制器 Intel 8259A是可编程中断控制器是可编程中断控制器 可配合可配合CPU(I8080/85、I8086/88/286/386等)管等)管理可屏蔽中断理可屏蔽中断 8259A的基本功能的基本功能 1片片8259A可以管理可以管

39、理8级中断,经级联最多可扩展至级中断,经级联最多可扩展至64级级 每一级中断都可单独被屏蔽或允许每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的调用指令(配合在中断响应周期,可提供相应的调用指令(配合I8080/85 )或中断向量号(配合或中断向量号(配合I8086/88/286/386) 8259A设计有多种工作方式,通过初始化编程进行设置设计有多种工作方式,通过初始化编程进行设置一、一、 8259A的内部结构和引脚的内部结构和引脚D7D0-INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联

40、级联缓冲器缓冲器比较器比较器-RD-WRA0-CSCAS0CSA1CAS2-SP/-EN优先权判别电路优先权判别电路中断服务寄存器中断服务寄存器控制逻辑控制逻辑1. 中断控制中断控制 中断请求寄存器中断请求寄存器IRR 保存保存8条外界中断请求信号条外界中断请求信号IR0IR7的请求状态的请求状态 Di位为位为1表示表示IRi引脚有中断请求;为引脚有中断请求;为0表示无请求表示无请求 中断服务寄存器中断服务寄存器ISR 保存正在被保存正在被8259A服务着的中断状态服务着的中断状态 Di位为位为1表示表示IRi中断正在服务中;为中断正在服务中;为0表示没有被服务表示没有被服务 中断屏蔽寄存器中断屏蔽寄存器IMR 保存对中断请求信号保存对中断请求信号IR的屏蔽状态的屏蔽状态 D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论