第一章(1)微处理器、微型计算机和微型计算机系统三者之间有什么不同?答:微处理器是把控制器和运算器以及数量不等的寄存器集成到一个大规模集成电路芯片上,称为中央处理器,即CPU。微型计算机是以微处理器为核心,配上由大规模集成电路制作的存储器、输入输出(I/O)接口电路以及系统总线所组成的计算机。微型计算机系统是以微型计算机为主体,配备输入输出设备以及软件构成的。它们之间是包含关系(7)什么是接口?接口的功能有哪些?答:微机接口就是微处理器CPU与“外部世界”的连接电路,是CPU与外界进行信息交换的中转站。接口功能:对外部设备的寻址功能、信号转换功能、数据缓冲功能、联络功能、可编程功能(8)CPU与接口之间有哪几种传送数据的方式?它们各应用在什么场合?答:无条件方式是一种最简单的传送方式,适用于外部设备总是处于就绪状态的情况。CPU在开始数据传送之前,不必关心外部设备的当前状态,就可以直接对外部设备接口进行读写。查询方式是CPU传送数据(包括读出和写入)之前,主动去检查外设是否“准备好”,若没有准备好,则继续查其状态,直至外设准备好了,即确认外部设备已具备传送条件之后,才进行数据传送。中断方式:当外部设备没有做好数据传输准备时,CPU可以执行与数据传送无关的其他指令。一旦外部设备准备好,主动通过硬件信号向CPU提出传送请求的其他程序。在原来被执行的程序看来,一个正常的执行过程被打断,因而称为中断传送。DMA传送:直接存储器存取DMA是一种外设与存储器或者存储器与存储器之间直接传送数据的方法,适用于需要大量数据高速传送的场合。(9)I/O接口的编制方式有几种?各有何特点?答:统一编址是指在整个存储空间中划分出一部分地址空间给外设端口使用。优点:在于I/O端口的地址空间较大,对端口进行操作的指令功能较强,使用时灵活方便。缺点:端口占用了存储器的地址空间,使存储器容量减小;另外指令长度比专门I/O指令要长,因而执行速度较慢。独立编址是对系统中的I/O端口单独编址,与内存单元的地址空间相互分开,各自独立,采用专门的I/O指令来访问具有独立空间的I/O端口。优点:不占用内存单元的有效地址空间,地址译码器较简单,端口操作指令长度较短,执行速度较快。(10)在I/O端口地址译码电路中常常设置AEN=0,有何意义?答:AEN为高电平时,I/O处于DMA方式,AEN为低电平时,I/O处于正常方式。(13)内存中每个用于数据存取的基本单位都被赋予一个唯一的编号,称为内存地址。第二章(1)总线接口部件(BIU)中包含哪些部件?执行部件(EU)中包含哪些部件?答:EU组成:由4个通用寄存器、4个专用寄存器、1个16位的算术逻辑单位(ALU)、1个16位的标志寄存器PSW、1个数据暂存寄存器和EU控制电路。BIU组成:由16位段寄存器(DS、CS、ES、SS)、16位指令寄存器IP,20位地址加法器和6字节指令队列缓冲器。(2)8086系统中存储器的逻辑地址和物理地址之间有什么关系。答:逻辑地址:16位段地址和16位偏移地址20位物理地址=16位段地址*16+16位偏移地址(4)设段地址为4ABFH,物理地址为50000H,求有效地址。答:50000H-4ABF0H=5410H(5)设CS=3100H,DS=3140H,两个段的空间均为64KB个单元,问两个段重叠区为多少个单元?两个段的段空间之和为多少个单元?答:FBFFH,103FFH(6)已知当前数据段位于存储器的B1000H到C0FFFH范围内,问DS寄存器的内容是什么?答:B1000H(7)8086CPU有哪几个状态标志位和控制标志位?它们在什么条件下被置位?答:6个状态标志位。CF(进/借位标志位)、PF(奇偶标志位)、AF(半进位标志位)ZF(零标志位)、SF(符号标志位)、OF(溢出标志位)3个控制标志位。TF(陷阱标志位)、IF(中断允许标志位)、DF(方向标志位)(8)8086CPU读写总线周期各包含多少个时钟周期?什么情况下需要插入TW周期,应插入多少个TW和取决于什么因素?答:4个,T1,T2,T3,T4,若发现READY=0,则在T3状态结束后自动插入一个或几个TW状态,并在每个TW状态的前沿处检测READY,等到READY变高后,则自动脱离TW状态进入T4状态。(11)8086CPU的AD15~AD0能否直接连接到系统总线上?答:不能,要连接地址锁存器。第三章(4)请说明下列指令是否正确,并指出错误原因。mov[2100],[2200H]错,两个操作数不能同时为内存操作数movCX,50H[BX+BP]错,要一个基址和一个变址movIP,2456H错,IP不能用于目的操作数PUSHDL错,字节不能PUSHmovCS,AX错,CS不能用于目的操作数PUSHCX对mov3000H,BX错,立即数不能为目的操作数movES,DS错,不允许在段寄存器之间传送数据INAX,256错,源操作数与目的操作数的长度要一致(5)如果数据段符号地址DBUF为3100H,并从它开始存放1234H,请问执行以下指令后寄存器AX的内容是什么?LEAAX,DBUFAX=3100HMOVAX,DBUFAX=1234H(6)已知SP=1000H,AX=1122H,BX=3344H,程序段如下:PUSHAXPUSHBXPOPBXPOPAX请问PUSHBX执行后SP的内容是什么?SP=1000H-4=FFCH指令POPAX执行后SP的内容是什么?SP=1000H(7).已知AH=11111111B,AL=00000000B请问下列每条指令执行后,AH和AL的内容是什么?对标志位ZF、CF的影响是什么?1.ADDAH,1(AH=00000000B,ZF=1,CF=1)2.SUBAL,OFDH(AL=03H,ZF=0,CF=1)3.INCAH(AH=00000000B,ZF=1,CF没影响)4.DECAL(AL=0FFH,ZF=0,CF没影响)5.ANDAH(AH=00000110B,ZF=0,CF=0)6.ORAL,90H(AL=10010000B,ZF=0,CF=0)7.XORAH,0FH(AH=11110000B,ZF=0,CF=0)8.TESTAL,80H(AL=00000000B,ZF=1,CF=0)结果不送回AL9.CMPAH,7FH(AH=11111111,CF-0,ZF=0)结果不送回AH(8)用移位指令计算Y=7*XMOVAX,XMOVCL,3SALAX,CLSUBAX,X(9)已知程序段如下,请说明完成什么操作?MOVCL,3MOVAL,0F0HAL=11110000BSARAL,CLAL=11111110B(10)已知AH=0FDH,AL=03,请说明执行下列程序后,程序将转向哪一个符号地址,W1,W2,W3?AddAH,ALJNOw1JNCw2JZw3答:如果有JNOw1,则跳转到JNOw1如果没有,跳到JZw3(12)已知从数据段DATA单元开始存放字节型的带符号数X和Y,请设计Y=6X+8movax,xsalax,1movbx,axsalax,1addax,bxaddax,8(14)已知X,Y是字节型的无符号数,设计程序计算:答:datasegmentxdb17ydb?dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axcmpx,10jaenext1moval,xmovcl,2shral,clmovy,aljmpnext2next1:cmpx,20jaenext2moval,xsubal,10movy,alnext2:movah,4chint21hcodeendsendstart(15)已知从数据段BUF单元开始存放15个字节型数据,请设计程序将其中的负数和零分别送往MINUS和ZERO开始的存储器单元。答:datasegmentbufdb1,20,3,4,-2,-5,8,0,67,-34,0,44,12,0,-1zerodb15dup(0fh)minusdb15dup(?)dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axleabx,bufmovcx,15leasi,minusleadi,zerolop:moval,[bx]cmpal,0jgel1mov[si],alincsijmpl2l1:jgl2mov[di],alincdil2:incbxlooplopmovah,4chint21hcodeendsendstart(17)请设计程序,将存储器单元2200-2210H清0、2250-2260H置1、22A0-22B0H置55H,要求写出主程序和子程序。答:DATASEGMENTBUF1EQU2200HBUF2EQU2250HBUF3EQU22A0HDATAENDSSTACKSEGMENTDB20DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKBEGPROCFARSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVBX,BUF1MOVAL,0CALLFMOVMOVBX,BUF2MOVAL,1CALLFMOVMOVBX,BUF3MOVAL,55HCALLFMOVRETBEGENDPFMOVPROCNEARMOVCX,11LOP:MOV[BX],ALINCBXLOOPLOPRETFMOVENDPMOVAH,4CHINT21HCODEENDSENDSTART实验一:datasegmentvaluedw5678h,6060htabledb33h,55h,20hdataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovax,1234hmovbx,axmovax,valuemov[bx],2000hmovdl,80hmovsi,0020hmov[bx+si],dlmovtable[bx+si],almovax,4c00hint21hcodeendsendstart第四章(5)常用的存储器片选控制方法有哪几种?它们各有什么优缺点?1)全译码法,优点是存储器中每一存储单元都有唯一确定的地址,缺点是译码电路比较复杂。2)部分译码法,它的优点是片选译码的电路比较简单,缺点是存储器空间中存在地址重叠区。3)线选法,优点是无需使用片选译码器,缺点是存储器地址空间被分成了相互隔离的区段,造成地址空间的不连续,给编程带来不便。(6)若某计算机有16条地址线,现用SRAM2114(1K*4b)存储芯片组成储存系统,问采用线选译码时,系统的存储容量最大为多少?需要多少个2114存储器芯片?1)6K2)12个第五章(1)8255有哪几种工作方式?有何差别?1)方式0:也叫基本输入输出方式,应用于无条件传送和查询传送,A,B,C端口均可使用。2)方式1也叫选通的输入输出方式,应用于中断方式或查询方式,A,B端口可以使用3)方式2也叫双向传输方式,应用于中断方式,只有端口A可使用。(2)假定8255A的端口地址分别为208H~20FH,编写下列情况的初始化程序。1)将A口,B口设置成方式0,端口A和C作为输入口,B口作为输出口MOVDX,20EHMOVAL,99HOUTDX,AL2)将A口设置成方式1输入口,PC6,PC7作为输出端,B口设置成方式1,输入口MOVDX,20EHMOVAL,0B6HOUTDX,AL(4).8255A能实现双向传输功能的工作方式为(方式2)(5)在Intel8255中可以进行按位置位/复位的端口是(端口C)(6)8255A内部包括两组控制电路,其中A组控制(端口A以及端口C的上半部分),B组控制(端口B以及端口C的下半部分)(7)若8255A的端口定义为方式0、输入,端口B定义为方式1、输出,端口C的上半部分定义为方式0、输出,试编写初始化程序MOV