习题六输入输出接口与中断1、为什么外围设备要经过接口才能与主机连接够成微机系统?答CPU与外围之间在数据形式、数据的传递方式以及传递速率上均会存在很大的差异。另外,电平也不一定匹配,因此在CPU与外围设备之间,需要一个使两者的动作条件相互配合的连接电路,它就是输入输出借口。2、CPU与I/O设备交换数据的控制方式及不同方式的优缺点。答CPU与外设通过接口交换信息的控制方式有程序控制方式、中断控制方式、直接存储器存取方式(DMA)和输入-输出处理机方式。程序控制方式包括无条件传送和条件传送。无条件传送是最简单的数据传送方式。当已知并确信输入的数据已准备好或输出时外设已将上次送出数据取走,就可以采用这种方式,这种方式适用于数据变化缓慢、且操作时间为固定的外设。当CPU与外设同步工作时采用无条件传送比较方便。若两者不同步,在CPU执行输入输出时,很难确保外设的数据准备好或数据已空。因此CPU与外设工作不同步时可采取条件传送。又称查询传送,它是传诵数据前,CPU必须先查询一下外设的状态,当外设准备好,即可以输入或输出数据传送,若未准备好,CPU要等待。CPU若采用中断控制方式与外设交换数据。CPU启动外设工作后,就去做自己的工作,这外设和CPU是并行工作的。当外设准备就绪,向CPU发来中断请求信号。一旦CPU响应请求,就暂停原来正执行的程序,转去执行中断服务程序。在中断。在中断服务中,CPU与外设交换数据,待服务完毕,CPU又返回原来被中断的程序继续执行。DMA控制方式是完全由硬件完成输入-输出工作方式。DMA从CPU接管系统总线控制权,使存储器与高速的外设之间直接进行数据交换,即外设数据可直接写入存储器,存储器中数据可读出后直接送给外设,CPU不需要干预,从而大大加快了数据传送的速度。DMA外设向DMA控制器发出DMA请求;DMA控制想CPU发出总线请求信号;CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号;CPU将控制总线,地址总线及数据总线让出,由DMA控制器进行控制;DMA控制器向外设发出DMA请求的回答信号;进行DMA传送;数据传送完毕,DMA控制器撤除向CPU请求信号,CPU重新控制总线恢复正常运行。3、设状态口地址为60H,数据端口地址61H,外部输入信息准备好标志为1,请用查询方式写出读入外部数据的程序段。LPI:INAL,60HANDAL,80HJZLPIINAL,61H4、状态口地址86H,数据口85H,外设忙碌D7=1,请用查询方式写出CPU从存储器缓冲区BUFFER送出1KB的数据给外设程序段(一次送一字节)答LEASI,BUFFERMOVCX,400HLPI:INAL,86HTESTAL,80HJNZLPIMOVAL,[SI]OUT85H,ALINCSILOOPLPIHLT5、某8086系统中使用8237A完成从存储器到外设端口的数据传送任务,若知通道0的地址寄存器、字节计数器、方式寄存器的端口地址分别为0EEE0H、0EEE1H及0EEE8H,要求通过通道0将存储器中地址为01000H-010FFH的内容送到外设端口。答MOVDX,0EEEDHMOVDX,AL;发主清除MOVDX,0EEE0HMOVAL,0OUTDX,AL;送基本地址和当前地址低8位MOVAL,10HOUTDX,AL;送基本地址和当前地址高8位INCDXMOVAL,0OUTDX,ALMOVAL,01OUTDX,ALMOVDX,0EEEBHMOVAL,88HDEGDXMOVAL,0OUTDX,AL6、某8086系统中使用8237A完成从存储器到存储器的数据传送,已知源数据块首地址20000H,目标数据块地址22000H,数据块长度100字节,请编写初始化程序并画出硬件连接图。答初始化程序如下MOVAX,20000HMOVAL,AHMOVCL,4SHRAL,CLOUT90H,AL;编程锁存器BOUT0DH,AL;主清除MOVAL,02HOUT81H,ALMOVAL,0OUT00H,AL;送源基和当前地址低8位OUT00H,AL;高8位OUT02H,AL;送目的基和当前地址低8位MOVAL,20HOUT02H,ALMOVAL,63HOUT03H,ALMOVAL,0OUT03H,ALMOVAL,88HOUT0BH,AL;方式控制字MOVAL,85HOUT0BH,ALMOVAL,3OUT08H,ALMOVAL,0EHOUT0AH,ALMOVAL,4OUT09H,ALA16/S3-A19/S6D4-D7A16-A19A8-A15A8-A15A0-A7ALEA0-A7D0-D7HLDAHOLDA0IO/MRDWRMEMWMEMRIOW5VIOR8237AEN373GOE0A1B3138C45E16E27E311373GOE373GOE373GOE≥11QDCLKCLRD7-D0AENADSTBA7-A0CSHLDA8237HRQCLKRESETMEMWMEMRIOWIORA0Y0B0A1Y1B1A2Y2B2A3Y3B3BOE7、解释题1)I/O接口:CPU与外设进行信息传送的部件2)I/O端口:接口中可由CPU进行读写的存储器称为I/O端口3)缓冲器:用于数据暂时存放,用于协调快速CPU和慢速的外设,实现数据传送的同步4)锁存器:输出端状态不会随输入端状态变化而变化,仅有锁存信号时输入状态才被保存到输出,直到下一个锁存信号到来时才改变。5)数据收发器:用于数据的双向传送、缓冲和驱动。6)DMA外设和内存之间直接进行传送数据的方式,且不需要CPU干预7)CPU停机方式:当DMAC要进行DMA传送时,DMAC向CPU发请求信号,迫使CPU在现行的总线周期结束后,使其地址总线、数据总线和部分状态总线处于高阻态,从而让出对总线的控制圈,并给出DMA响应信号,这时CPU处于空闲状态,直到DMA传送结束后。8)同步传送方式:有称无条件传送,数据已准备完毕,随时接受或发送,外设必须在处理器限定时间内准备就绪,并完成数据的接受或发送。9)异步传送方式:有称查询传送方式。10)中断:CPU在处理某件时间时外部发生另一个紧急时间,要求CPU迅速处理,CPU就暂时中断当前工作,转去处理所发生事件,处理完后,再回到远来中断的地方继续原来的工作,这样的过程叫中断。11)中断源:引起中断过程的事件叫中断源12)中断向量表:所有中断向量集中存储在内存指定空间,这一个区域的称为中断向量表13)中断嵌套:CPU执行优先级较低的中断请求时,CPU首先响应中断高级的中断请求,而挂起正在处理的中断。14)普通EOI方式:当中断服务程序结束之前向8259A发出EOI命令,将正在执行的中断服务寄存器ISR中所有已置位的优先级最高的位清零。15)特殊EOI方式:当前中断服务程序结束之前向8259A发出结束命令,用来清楚正在执行的中断服务寄存器中相应位(此时正在服务的中断优先级不一定是最高级)。16)溢出中断:如果上一指令使得溢出标志OF置1,那么执行溢出中断指令。8、查询传送方式过程答又称异步传送方式,当CPU同步工作不同步时,CPU必须先对外设进行状态检测。完成一次传送过程步骤如下:1)通过执行一条输入指令,读取所选外设的当前状态。2)根据该设备的状态决定程序去向,如果外设正处于忙或未准备就绪,则程序转回重复查测外设状态,如果外设处于“空”或“准备就绪”,则发出一条输入/输出指令,进行一次数据传送。9、中断传送方式工作过程答在中断传送方式中,通常是在程序中安排好在某一时刻启动某一台外设,然后CPU继续执行其主程序,当外设完成数据传送的准备后,向CPU发出“中断请求”信号,在CPU可以响应中断的条件下,现行主程序被“中断”,转去执行“中断服务程序”,在“中断服务程序”中完成一次CPU与外设之间的传送,传送完成后仍返回被中断的主程序,从断点处继续执行。10、DMA三种传送方式的区别。答1)单字传送:每次DMA传送只传送一个字节数据,传送后释放总线由CPU控制总线一个完整的总线周期。以后又测试DMA请求线DREQ,若有效,再进入DMA周期。在DMA响应信号DACK有效前,DREQ必须保持有效;若DREQ在传送过程一直保持有效,在两次传送之间也必需释放总线。2)成组传送方式,一个DMA请求一组信息,这一组信息的字节数由编程决定,只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放弃总线控制权,直到整个数据传送完。3)请求传送方式,该方式类似成组传送方式,但每传送一个字节后,DMAC就检测DREQ,若无效则挂起;若有效,继续DMA传送,直到一组信息传送结束;外加信号强制DMAC终止操作。11、DMAC的基本功能1)能接受外设的DMA请求信号DREQ,并能向外设发出DMA响应信号DACK;2)能向CPU发出总线请求信号,当CPU发出总线响应信号后能接管总线控制权,进入DMA方式;3)能发出地址信息,对存储器寻址并修改地址指针;4)能发出读、写等控制信号,包括存储器访问信号和I/O访问信号;5)能决定传送的字节数,并能判断DMA传送是否结束。6)能发出DMA结束信号,释放总线,使CPU恢复正常工作。12、ADC0809同微处理器直接相连,EOC引脚接微处理器的INTR脚,微处理器可以采取几种方式正确读取ADC0809的A/D转换结果?答:1)查询方式,CPU检测到EOC发出请求信号后,进行数据传送2)中断传送方式,当CPU检测到EOC的请求信号后,响应请求,进入中断服务程序,完成一次数据传送3)无条件传送方式,在微处理器指定的时间内,完成0809的转换结果发送习题七1、简述中断系统功能答中断是一种使CPU挂起正在执行的程序而转去处理特殊事件的操作;功能1)实现中断及返回2)能实现优先权排队,从而确定优先处理的中断源3)优先权高的中断源能中断优先权低的中断处理2、微机的中断处理过程有哪几步?中断过程和调用子程序过程有何异同答1)一个中断过程包含:中断请求、中断排队、中断响应、中断服务和中断返回2)中断过程与子程序过程相同之处:都是主程序中调用子程序,之后返回主程序。不同的是,进入子程序的时间和方法不同。调用子程序时,指令安排在主程序中,主程序主动,子程序入口地址通过计算得到。而中断过程对于主程序是被动的,主程序中没有预先调用的指令,中断是随机的,中断处理子程序入口地址要由中断类型码(N*4)。3、简述判别中断优先权的几种方法。答一般有软件和硬件两种方法。1)软件法是在CPU响应中断后,用软件查询确定哪个中断源申请中断,先被查询的先响应,所以最先被查询的中断源具有最高优先权2)用硬件实现中断优先判别,常用的有中断优先权编码电路,链式优先权排队电路及专用硬件电路等。中断优先权编码电路主要由硬件编码器和比较器组成,编码器送出优先权最高的编码,由此编码获得相应的中断服务地址入口。比较器判别只有比当前中断优先权高的中断请求才送至CPU引脚。4、中断服务程序一般有那些操作1)保护现场2)开中断,要实现中断嵌套,必须在中断服务程序中开中断3)中断处理4)关中断,保证下一步恢复现场操作不被打断5)恢复现场6)中断返回5、实现中断嵌套的条件是什么?优先权高的请求一定能打断优先权低的程序吗?答中断嵌套是正在中断服务处理过程中,出现优先权更高的中断请求,则再次响应新的中断请求,转去为优先权高的中断服务,处理完后再回到原来的中断服务中。因此,实现中断嵌套其必要条件是新的中断请求的优先权更高。但并不是优先权高的中断请求一定能打断优先权低的中断,如果CPU在中断的处理过程时处于禁止中断状态,它是不响应新的中断请求的。6、8086/8088的中断分为哪几类?简述其特点答分为2大类:内部中断和外部中断内部中断由执行中断指令或特殊事件而引起,CPU不是通过外部中断请求而是通过内部逻辑进入中断,调用相应的中断服务程序,这种CPU自启动的中断被称为内部中断。内部中断主要用于解决程序运行中发生的一些以外情况、程序调试、用户定义的中断或调用系统中断。内部中断种类:除法出错