作业董海燕《微机原理与接口技术》2-6.8086系统中的存储器为什么要采用分段结构?有什么好处?答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。8086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。通信教研室22020年6月15日2-10、8086最小模式和最大模式有什么区别?各有什么特点•8086最小模式和最大模式主要区别体现在8086CPU的第24~31引脚具有不同功能•最小模式:系统中只有8086一个处理器,所有的控制信号都是由8086CPU产生(MN/MX=1)。•最大模式:系统中可包含一个以上的处理器,比如包含协处理器8087。在系统规模比较大的情况下,系统控制信号不是由8086直接产生,而是通过与8086配套的总线控制器等形成(MN/MX=0)。最大模式一般用于多处理器系统中通信教研室32020年6月15日2-14、某程序在当前数据段中存有两个数据字0ABCDH和1234H,它们对应的物理地址分别为3FF85H和40AFEH,若已知当前(DS)=3FB0H,请说明这两个数据的偏移地址,并用图说明它们在存储器中的存放格式。答:偏移地址为:0485H和0FFEH。通信教研室42020年6月15日3-1分别指出下列指令的源操作数和目标操作数的寻址方式1:MOVAX,[SI]寄存器寻址寄存器间接寻址2:MOVDI,100寄存器寻址立即寻址3:MOV[BX],AL寄存器间接寄存器4:MOV[BX][SI],CX基址变址寄存器5:ADDDX,106H[SI]寄存器变址6:PUSHAX寄存器7:ADDDS:[BP],AX寄存器间接寄存器8:ORAX,DX寄存器寄存器通信教研室52020年6月15日3-2:设寄存器DS=2000H,SS=1500H,ES=3200H,SI=0A0H,BX=100H,BP=10H,数据段中变量VAL的偏移地址为50H,试指出下列各条指令中源操作数的寻址方式是什么?对于存储器操作数,其物理地址是多少?MOVAX,[100H]直接寻址:20100HMOVCX,ES:[BX]寄存器间接寻址32100HMOVDX,[BX][SI]基址变址:201A0hMOVAX,VAL[SI]变址寻址:200F0hMOVBX,1234[BX]基址寻址:21334HMOVAX,[BP]寄存器间接寻址:15010H通信教研室62020年6月15日3-5:已知,DS=2000H,BX=100H,SI=02H从物理地址20100H单元开始,依次存放数据12H,34H,56H,78H,而从物理地址21200h单元开始,依次存放数据2AH,4CH,8BH,98H.试说明下列各条指令单独执行后AX寄存器的内容。(1)MOVAX,3600H3600H(2)MOVAX,[1200H]4C2AH(3)MOVAX,BX0100H(4)MOVAX,[BX]3412H(5)MOVAX,1100H[BX]4C2AH(6)MOVAX,[BX][SI]7856H通信教研室72020年6月15日4-4试统计9个数中偶数的个数并将结果显示在屏幕上datasegmentbuffdb3bh,42h,80h,-75,0a4H,69,-2eh,0cch,200dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,ax通信教研室82020年6月15日movsi,offsetbuffmovcx,9xordl,dlA1:moval,[si]shral,1jcnextincdlnext:incsiloopA1adddl,30hmovah,2int21hmovax,4c00hint21hcodeendsendstart通信教研室92020年6月15日4-5试将2一串16位无符号数加密,加密方法是乘以2DATASEGMENTMEMDW20DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX通信教研室102020年6月15日MOVCX,LENGTHMEMLEABX,MEMAA1:MOVAX,[BX]ADDAX,AX(或SHLAX,1或SALAX,1)MOV[BX],AXADDBX,2LOOPAA1MOVAX,4C00HINT21HCODEENDSENDSTART通信教研室112020年6月15日5-6根据DL的D3位,完成两个压缩BCD数x和y的加减运算,D3=0时,作加法;D3=1时,作减法,并将结果存入寄存器DL。DATASSEGMENTXDB31hYDB12hresultDB0DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AX通信教研室122020年6月15日MOVAL,XTESTDL,08HJZJIASUBAL,YDASJMPfinishJIA:ADDAL,YDAAfinish:movresult,alMOVAH,4CHINT21HCODESENDSENDSTART通信教研室132020年6月15日6-2I/O接口有什么用途?1.进行地址译码或设备选择,以便使CPU能与某一指定的外部设备通讯;2.状态信息的应答,以协调数据传送之前的准备工作;3.进行中断管理,提供中断信号;4.进行数据格式转换,如正负逻辑的转换,串行与并行数据转换等;5.进行电平转换,如TTL电平与MOS电平间的转换;6.协调速度;7.时序控制,提供实时时钟信号。通信教研室142020年6月15日6-3、I/O端口有哪两种寻址方式?各有什么优缺点?I/O端口地址与存储单元地址分开编址这种编址方式的优点:利用多余的内存译码资源;可以用访向存储器的指令来访问I/O端口,而访问存储器的指令功能比较强,不仅有一般的传送指令,还有算术、逻辑运算指令,以及各种移位、比较指令等,并且可以实现直接对I/O端口内的数据进行处理。缺点是:由于I/O端口占用了一部分存储器地址空间,因而使用户的存储地址空间相对减小。另外不利于程序阅读。通信教研室152020年6月15日I/O端口地址与存储单元地址分开编址这种编址方式的优点是:1、I/O端口不占用存储器地址,故不会减少用户的存储器地址空间;2、采用单独的I/O指令,使程序中I/O操作和其他操作层次清晰,便于理解。这种编址方式的缺点是:1、单独I/O指令的功能有限,只能对端口数据进行输入/输出操作,不能直接进行移位、比较等其他操作;2、由于采用了专用的I/O操作时序及I/O控制信号线,因而增加了微处理器本身控制逻辑的复杂性。6-6输入输出有哪几种方式?各有什么特点?一、程序控制传送方式1、同步传送方式(无条件方式)CPU直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据,只能用于简单外设。2、异步查询方式在执行输入输出前,要先查询接口中状态寄存器的状态。解决了CPU与外设之间的同步问题,CPU与外设串行工作,需要查询等待,CPU工作效率低,I/O响应速度慢通信教研室172020年6月15日3、中断方式当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。与程序查询方式相比,中断控制方式的数据交换具有如下优点:(1)提高了CPU的工作效率;(2)CPU具有控制外围设备服务的主动权;(3)CPU可以和外设并行工作;(4)可适合实时系统对I/O处理的要求。缺点:硬件电路和处理过程都比较复杂,传输速度慢,不能适合高速的外设或成块交换数据的情况。通信教研室182020年6月15日二、DMA方式是在外设与内存间建立起直接的通道,CPU不再直接参加外设和内存间的数据传输。适合于I/O和MEM之间有大批量数据高速传送。缺点:没有异常事件的处理能力通信教研室192020年6月15日6-11.现有两个输入设备,使用程序查询方式与CPU通信。当状态位D0=1时,为第1号设备输入字符;当状态位D1=1时,为第2号设备输入字符;当状态位D3=1时,1号设备中结束输入过程,当状态位D4=1时,2号设备中结束输入过程。设状态端口地址为0624H,1号设备数据端口地址为0626H,2号设备数据端口地址为0628H,输入字符缓冲区首地址分别为BUFFER1和BUFFER2,试编一程序完成从输入设备输入100个字符。通信教研室202020年6月15日DATASEGMENTBUFF1DB100DUP(?)BUFF2DB100DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,BUFF1LEADI,BUFF2MOVCX,100TEST0:MOVDX,0624HINAL,DXTESTAL,01HJZTEST1IN1:MOVDX,0626HINAL,DXMOV[SI],ALINCSIDECCXMOVDX,0624HINAL,DXTESTAL,08HJZIN1JMPNEXT通信教研室212020年6月15日TEST1:TESTAL,02HJZNEXTIN2:MOVDX,0628HINAL,DXMOV[DI],ALINCDIDECCXMOVDX,0624HINAL,DXTESTAL,10HJZIN2NEXT:CMPCX,0JNZTEST0MOVAX,4C00HINT21HCODEENDSENDSTART通信教研室222020年6月15日7-1设某8086系统中有两个8255芯片,由74ls138译码器产生两个芯片的片选信号,如图7-43所示。要求:第一片8255A的A口工作在方式0输出,B口工作在方式0输入,C口高4位为输出,低4位为输入。第2片8255A的A口为方式0输入,B口工作在方式1输入,C口高4位为输出,低4位为B口控制信号。1)试指出两片8255A芯片各自的端口地址;(2)试指出两片8255A芯片各自的方式控制字;(3)试写出两片8255A芯片各自的初始化程序;(1)对于第一片8255A,必须满足A8=1,M/IO=0,A5=1,A4=1,A3=1,Y7有效,而其它位可以为0或1,若取它们均为0,则A口地址为0138H,则B口地址为013AH,则C口地址为013CH,则控制端口地址为013EH;同理,第一片8255A的A口地址为0130H,则B口地址为0132H,则C口地址为0134H,则控制端口地址为0136H。通信教研室232020年6月15日(2)第一片8255A芯片由于A口工作在方式0输出,C口高4位为输出,所以控制字的D6D5=00,D4=0,D3=0;B口工作在方式0输入,C口低4位为输入,D2=0,D1=1,D0=1。完整的控制字为10000011(83H);第二片8255A芯片由于A口工作在方式0输入,C口高4位为输出,所以控制字的D6D5=00,D4=1,D3=0;B口工作在方式1输出,C口的低4位为B口控制信号,设为输入,D2=1,D1=0,D0=1。完整的控制字为10010101(95H通信教研室242020年6月15日(3)初始化程序是:MOVAL,83HMOVDX,13EHOUTDX,ALMOVAL,95HMOVDX,136HOUTDX,AL通信教研室252020年6月15日7-6某系统中8253芯片的通道0至通道2和控制端口的地址分别为0FFF0H~0FFF6H,定义通道0工作在方式2,CLK0=2MHz,要求输出OUT0为1KHz的速率波;定义通道1工作方式0,其CLK1输入外部计数事件,每计满1000个向CPU发出中断请求。试写出8253通道0和通道1的初始化程序。通道0:方式2,00110101(53H)n=2M/1K=2000通道1:方式0,