P11思考题:若S3S2S1S0可变,即有的开关接高电平,有的接低电平,当AB且74LS85的输出引脚AB接74LS138的G1,此时译码器译出的端口地址范围是多少?那么AB呢?解:74LS85的功能图如下:所以当AB且74LS85的输出引脚AB接74LS138的G1时,有如下几种情况(这里假设译码输出Y0端有效):1.A3B3,则A3=1,即A11=1,S3闭合,所以一种范围是800H~807H;2.A3=B3A2B2则A2=1,即A10=1,S2闭合,所以一种范围是400H~407H;3.A3=B3A2=B2A1B1,则A1=1,即A9=1,S1闭合,所以一种范围是200H~207H;4.A3=B3A2=B2A1=B1A0B0,则A0=1,即A8=1,S0闭合,所以一种范围是100H~107H;5.A3=B3A2=B2A1=B1A0=B0,S0S1S2S3都闭合或打开,所以范围是000H~007H或F00H~F07H;以此类推。当AB且74LS85的输出引脚AB接74LS138的G1时,有如下几种情况(这里假设译码输出Y0端有效):1.A3B3,则A3=0,S3打开;2.A3=B3A2B2,则A2=0,S2打开;3.A3=B3A2=B2A1B1,则A1=0,S1打开;4.A3=B3A2=B2A1=B1A0B0,则A0=0,S0打开;以上一种范围是000H~007H;5.A3=B3A2=B2A1=B1A0=B0,S0S1S2S3都闭合或打开,则范围是000H~007H或F00H~F07H;以此类推。P184.使用74LS138设计一个接口芯片的I/O端口地址译码电路,要求每个接口芯片内部的端口数目为32个(已知I/O端口地址分配在000H~0FFH范围内)。答:因为I/O端口地址分配在000H~0FFH范围内,所以A9,A8应赋值为0。芯片内部32个端口,所以A4~A0保留。A7~A5作为输入线,参与译码,或作为74LS138的控制线控制75LS138的译码是否有效。所以如下表00A9A8A7A6A5A4A3A2A1A0控制片选片内端口寻址0H0~7H0~FHP185.试述程序常用的CPU与外设置键传输数据的3种方式及其各自的特点。答:有3种方式:直接程序控制方式、中断传送方式、DMA传送方式。一、直接程序控制方式:分为无条件传送方式和条件传送方式。无条件传送方式,CPU不需要了解外设的工作状态,每隔一定时间,CPU与外设进行数据交换,即进行数据的发送和接收。其特点是硬软件设计都比较简单,但应用的局限性较大,因为很难保证外设在每次信息传送时都处于,一般只用于诸如开关控制、七段数码管的显示控制等场合;条件传送方式又称查询方式,通过程序查询相应设备的状态,若设备未处于“准备好”的或“不忙”状态,则CPU不能进行输入输出操作,需要等待,只当设备的状态就绪时,CPU才进行相应的输入输出操作,其特点是能够保证输入输出的正确性。二、中断传送方式,就是当CPU进行主程序操作时外设的数据已存入输入端口的数据寄存器,或端口的数据输出寄存器已空,由外设通过接口电路向CPU发出中断请求信号,CPU在满足一定的条件下,暂停当前正在执行的主程序,转入执行相应的中断服务程序。中断服A5A6A7A8A9AENY0Y1Y2Y3Y4Y5Y6Y7务程序执行结束后,CPU返回原来被中断的主程序,并继续执行。这样可以避免把大量时间耗费在等待、查询状态信号的操作上,使其工作效率得以大大提高。三、DMA传送方式,数据交换不通过CPU,而利用专门的接口电路直接与存储器交换数据,传送的速度只取决于存储器和外设的工作速度,大大提高了系统效率。DMA传送主要应用于高速度大批量数据传送的系统中,如磁盘存取、图像处理、高速数据采集系统等,以提高数据的吞吐量。一般有三种形式:存储器与I/O设备之间的数据传送,存储器与存储器之间的数据传送,以及I/O设备与I/O设备之间的传送。P561.8086/8088CPU的地址总线有多少位?其寻址范围是多少?答:总共有20根,可寻址1MB空间,范围:00000H~FFFFFH。4.8086/8088CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器也可作为地址寄存器使用?答:通用寄存器有:8个16位的寄存器。AX、BX、CX、DX为数据寄存器。SP为堆栈指针,BP为基址指针,DI和SI分别为目的变址寄存器和源变址寄存器。变址寄存器:DI和SI分别为目的变址寄存器和源变址寄存器。在寄存器间接寻址中,只有BX、BP、SI、DI能作为地址寄存器使用。6.试求出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别。答:(1)1278H+3469H0001001001111000H+0011010001101001H0100011011100001HCF=0PF=1AF=1ZF=0SF=0OF=0(2)54E3H-27A0H0101010011100011H+1101100001100000H10010110101000011HCF=0PF=0AF=0ZF=0SF=0OF=0(3)3881H+3597H0011100010000001H+0011010110010111H0110111000011000HCF=0PF=1AF=0ZF=0SF=0OF=0(4)01E3H-01E3H0000000111100011H+1111111000011101H10000000000000000HCF=0PF=1AF=0ZF=1SF=0OF=0溢出标志OF和进位标志CF是两个意义不同的标志.进位标志表示无符号数运算结果是否超出范围,运算结果仍然正确;溢出标志表示有符号数运算结果是否超出范围,运算结果已经不正确。7.8086所构成的系统分为哪两个存储体?它们如何与地址、数据总线连接?答:8086构成系统分为偶地址存储体和奇地址存储体。偶地址存储体:连接D7~D0,A0=0时选通;奇地址存储体:连接D15~D8,BHE=0,A0=1时选通。9.设现行数据段位于存储器B0000H到BFFFFH存储单元,DS段寄存器内容为多少?答:段地址应开始于存储空间的一小节,即其物理地址的最低一位十六进制数是0,高4位十六进制数就是段地址,所以DS=B000H。10.若(CS)=5200H,物理转移地址为5B230H,则当CS的内容被设为7800H,物理转移地址应为多少?答:实际的物理地址=段基址*16+段内偏移地址CS是段基址,段基址是每段的首地址物理地址为5B230H=CS*16+IP那么CS=5200H,IP=9230CS=7800时物理地址=7800H*16+9230=81230H。12.试简述80486CPU的实地址模式、保护模式和虚拟8086模式。答:80486工作于实地址方式时,系统的IDT变为8086/8088系统中的中断矢量表,存于系统物理存储器的最低地址区,共1KB,每个中断矢量占4B,即2B的CS和2B的IP值。当工作于保护方式时,系统的IDT可以置于内存的任意区域,其起始地址存放在CPU内部的IDT基址存储器。有了这个起始地址,再根据中断或异常的类型吗,即可获得相应的描述。每个描述项占8B,包括2B的选择符,4B的偏移量,这6B共同决定了中断服务程序的入口地址,其余2B存放类型值等说明信息。虚拟8086模式,也成为V86模式。只有在保护模式下,通过设置和清除标志寄存器EFLAGS中的位17(VM位)来进入和退出V86模式。当VM=1时,进入V86方式,当VM=0时,退出V86模式,但80486系统软件不能直接处理EFLAGS寄存器中的VM标志,只能更改TSS或堆栈中的EFLAGS映像。15.8086CPU读/写总线周期各包含多少个时钟周期?什么情况下需要插入Tw等待周期?应插入多少个Tw?取决于什么因素?什么情况下回出现空闲状态TI?答:8086CPU读/写总线周期包含4个时钟周期。当系统中所用的存储器或外设的工作速度较慢,从而不能用最基本的总线周期执行读操作时,系统中就要用一个电路来产生READY信号,READY信号通过时钟发生器8284A传递给CPU。CPU在T3状态的前沿(下降沿处)对READY信号进行采样。如果CPU没有在T3状态的一开始采样到READY信号为高电平,那么,就会在T3和T4之间插入等待状态Tw。插入Tw的个数取决于CPU接收到高电平READY信号的时间。CPU在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期。