&电子工业出版社&第二章8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,ExecutionUnit)和总线接口部件(BIU,BusInterfaceUnit)。指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。5.简述8086系统中物理地址的形成过程。8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。8086系统采用分段并附以地址偏移量办法形成20位的物理地址。采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。通过一个20位的地址加法器将这两个地址相加形成物理地址。具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。逻辑地址由段基址和偏移地址两部分构成,都是无符号的16位二进制数,程序设计时采用逻辑地址,也是1MB。6.8086系统中的存储器为什么要采用分段结构?有什么好处?答:8086CPU中的寄存器都是16位的,16位的地址只能访问64KB的内存。086系统中的物理地址是由20根地址总线形成的,要做到对20位地址空间进行访问,就需要两部分地址采用段基址和偏移地址方式组成物理地址的优点是:满足对8086系统的1MB存储空间的访问,同时在大部分指令中只要提供16位的偏移地址即可。9.在某系统中,已知当前(SS)=2360H,(SP)=0800H,那么该堆栈段在存储器中的物理地址范围是什么?若往堆栈中存入20个字节数据,那么SP的内容为什么值?答:(SS)×10H+(SP)=23600H+0800H=23E00H,堆栈段在存储器中的物理地址范围是23600H~23E00H。若往堆栈中存入20个字节数据,那么SP的内容为0800H-14H=07ECH。(20的十六进制为14H)。10.已知当前数据段位于存储器的B4000H到C3FFFH范围内,则段寄存器DS的内容为多少?答:段寄存器DS的内容为B4000H。11.8086系统中为什么一定要有地址锁存器?需要锁存哪些信息?答:由于8086CPU受芯片封装的限制,只有40个管脚,所以地址线和数据线只能采用复用的方式共同使用某些管脚。对存储器进行访问时,在读取数据或写入数据时,存储器芯片要求在这个过程中地址信息必须稳定提供给存储器,而由于8086CPU地址线和数据线是复用的,就不可能在同一时刻具有地址和数据的两种功能。这就需要在CPU提供地址信息时,将地址锁存起来,以保证下一个时刻当这些复用的管脚起着数据线的功能时,存储器有正确的地址信息。要锁存的信息包括这些复用管脚的地址和BHE等信号。12.8086读/写总线周期各包括最少几个时钟周期?什么情况下需要插入等待周期TW?插入多少个TW取决于什么因素?答:8086读/写总线周期各包括最少四个时钟周期。在系统中增加等待周期TW的一般情况是:当CPU提供了地址后,由于外设或存储器的读出或写入时间较慢,不能与CPU的速度匹配,就需要插入等待周期TW,等待CPU能从外设或存储器将数据正确地读出或写入为止。显然,插入的等待周期TW的个数取决于外设或存储器的取出或写入时间。13.若已知当前(DS)=7F06H,在偏移地址为0075H开始的存储器中连续存放6个字节的数据,分别为11H,22H,33H,44H,55H和66H,请指出这些数据在存储器中的物理地址,如果要从存储器中读出这些数据,需要设备部几次存储器?各读出哪些数据?答:物理地址:7F06H×10H+0075H=7F0DSH,故从7F0DSH起6个地址数据在存储器中的地址。最少要访问四次:第一次:11。第二次:33,22。第三次:55,44。第四次:66。14:某程序在当前数据段中存有两个数据字0ABCDH和1234H,它们对应的物理地址分别为3FF85H和40AFEH,若已知当前(DS)=3FB0H,请说明这两个数据的偏移地址,并用图说明它们在存储器中的存放格式。答:偏移地址为:0485H和0FFEH。第三章8086的指令系统1:MOVAX,[SI]寄存器寻址寄存器间接寻址2:MOVDI,100寄存器寻址立即寻址3:MOV[BX],AL寄存器间接寄存器4:MOV[BX][SI],CX基址+变址寄存器5:ADDDX,106H[SI]变址寄存器6:PUSHAX寄存器7:ADDDS:[BP],AX8:ORAX,DX寄存器2:设寄存器DS=2000H,SS=1500H,ES=3200H,SI=0A0H,BX=100H,BP=10H,数据段中变量VAL的偏移地址为50H,试指出下列各条指令中源操作数的寻址方式是什么?对于存储器操作数,其物理地址是多少?(1)MOVAX,[100H]直接寻址:20100H(2)MOVCX,ES:[BX]寄存器寻址(3)MOVDX,[BX][SI]基址+变址:200F0h(4)MOVAX,VAL[SI]变址寻址:200F0h(5)MOVBX,1234[BX]基址寻址:205D2H(6)MOVAX,[BP]寄存器寻址:15010H3.答案(3)OUT3EBH,AX改(4)MULAL,CL改MULCLMOVDX,3EBH6)ROLDX,5改MOVCL,5OUTDX,AXROLDX,CL(5)MULAX,25改(8)POPFR改POPFMOVBX,25(9)MOV234H,BX改MOVBX,234H(10)INC[SI]改INCBYTEPTR[SI](11)ADD[BX],456H改ADDWORDPTR[BX],456H(12)INTO错(13)DIVAX,BX改DIVBX(14)DEC[BP]改DECWORDPTR[BP](15)XLATBX错(16)ADDCX+1改ADDCX,1或INCCX(17)DAAAX改DAA4:带符号数-86所表示的二进制:10101010B执行MOVDL,2AH和SHRDL,1两条指令后:DL=00010101CF=0可将AX寄存器中D0,D5,D8和D11位求反,其余位不变的指令:XORAX,0921H某存储单元物理地址为3B4FH,其段地址和偏移地址可选:3B40H和00FEH两个8位二进制数00110101及10110110做“异或”操作后,寄存器FR的下面3个状态标志分别是:PF=0SF=1ZF=0寄存器写指令时,如MOV[SI],AX,则CPU的外部管脚状态:WR=0RD=1M\IO=15:已知,DS=2000HBX=100HSI=02H从物理地址20100H单元开始,依次存放数据12H34H56H78H,而从物理地址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]7856H6.设堆栈指针SP的初值为2400H,(AX)=4000H,(BX)=3600H.问:(1)执行指令“PUSHAX”后,SP=?23FEH(2)再执行“PUSHAX”和”POPAX”后,(SP)=?(AX)=?(BX)=?SP=23FEHAX=3600HBX=3600H7.(1)MOVDX,2000HMOVBX,1000HXHGHBX,DXBX=2000H,DX=1000H(2)MOVAX,1234HPUSHAXPOPBXAX=1234H,BX=1234H(3)LEADX,[2000H]MOVBX,DXBX=2000H(4)MOVAL,08ADDAL,08AAAAX=0106(5)MOVAL,48HADDAL,39HDAA(AL)=87H(6)ANDAL,ALMOVAL,80ADCAL,AL(AL)=0A0H(7)MOVDX,OFFFHNEGDX(DX)=0001H(8)MOVBL,OB8HRORBL,1BL=5CH,CF=0(9)SUBAX,AXANDDX,DXDX=0(10)MOVCL,3MOVAH,42HSHRAH,XLAH=08H,CF0(11)MOVAX,34EBHMOVCL,5FHDIVCLCF=8FH(12)MOVAL,08HMOVBL,09MULBLAAMAX=0702H(13)MOVBL,9MOVAX,0702HADDDIVBL,AX=0008H(14)MOVAL98HCBWBX=0FF98H(15)MOVAH,2MOVDL,`W`INT21H结果=执行DOS的2号功能调用,在屏幕上显示字母W第五章存储器原理与接口1.按存储器在计算机中的作用,存储器可分为哪向类?简述其特点。答:存储器分:主存储器(内存),辅助存储器(外存),高压缓冲存储器。主存储器用来存放活动的程序和数据,其速度高,容量较少、每位价格高。辅助存储器用于存放当前不活跃的程序和数据,其速度慢、容量大、每位价格低。缓冲存储器在两个不同工作速度的部件之间起缓冲作用。2.什么是RAM和ROM?RAM和ROM各有什么特点?答:RAM是随机存储器,指计算机可以随机地、个别地对各个存储单元进行访问,访问所需时间基本固定,与存储单元的地址无关。ROM是只读存储器,对其内容只能读,不能写入。与RAM相比,其信息具有非易失性,即掉电后,ROM中的信息仍会保留。3.什么是多层次存储结构?它有什么作用?答:存储器的性能是计算机性能的最主要指标之一,其目标是大容量、高速度和低成本,因此应该在系统结构的设计上扬长避短,采用多层存储结构构成一个较为合理的存储系统。多层存储结构是一个金字塔的结构,距塔尖(即CPU)越近速度越快,容量越小,单位价格也较贵;反之速度较慢,容量较大,单位价格也较便宜。其作用是获得最佳性价比。5.主存储器的主要技术指标有哪些?答:主存储器的主要技术指标有主存容量、存储器存取时间、存储周期和可靠性。7.若用1K×1位的RAM芯片组成16K×8位的存储器,需要多少片芯片?在CPU的地址线中有多少位参与片内寻址?多少位用做芯片组选择信号?答:要128片。A1~A9共10位参与片内寻址,其余可用于片选信号。8.在8086系统中,若要从存储器奇地址体中读1个字节数据,列出存储器有关的控制信号和它们的有效逻辑电平信号。答:RD=0WD=1CS=0MIO=1BHE=0第六章微型计算机的输入输出1.CPU与外部设备通信为什么使用接口?答:存储器与CPU交换信息时,它们在数据格式、存取速度等方面基本上是匹配的,,也就是说,CPU要从存储器读入指令、数据或向存储器写入新的结果和数据,只要一条存储器访问就可以完成;在硬件连接方面,只需芯片与芯片之间的管脚直接连接。但CPU要与外部设备通信至少有两方面的困难:第一,CPU的运行速度要比外设的处理速度高得多,通常简单地用一条输入输出的指令是无法完成