• 162.65 KB
  • 2022-04-22 11:27:32 发布

《微型计算机原理与接口技术》第二版答案张荣标.pdf

  • 34页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'微型计算机原理与接口技术第二版答案张荣标机械工业出版社第一章1.5练习题1.选择题(1)BCA(2)A(3)DA(4)C2填空(1)10,12(2)阶数(3)10011100B,01000100B,1110000B,01000000(4)3F7H,1C3H,243H,277H,3简答题(1)微处理器,微型计算机和微型计算机系统三者有何联系与区别?微处理器是把原来的中央处理单元CPU的复杂电路(包括运算器和控制器)做在一片或几片大规模集成电路的芯片上。把这种微缩的CPU大规模集成电路称为微处理器。微型计算机是以微处理器为核心,再配备上用大规模集成电路工艺制成的存储器和I/O接口就构成了微型计算机。以微计算机为核心,再配备上系统软件、I/O设备、辅助电路和电源就构成了微机系统。微型计算机系统包括硬件和软件了两大部分。(2)计算机中为什么采用二进制数表示?(3)简述程序的运行过程。 第2章2.10练习题1.选择题1.B2.D3.C4.B5.C6.C7.B8.A9.A2填空题(1)地址总线的宽度,00000H~0FFFFFH(2)寄存器,运算器,控制器;运算和控制(3)SS,DS,CS,ES(4)MN/MX(5)SS,DS(7)奇区,偶区,高8位,低8位3简答题(1)什么是指令周期?什么是总线周期?一个总线周期至少包括几个时钟周期?指令周期是一条指令执行所需的时钟周期,cpu在执行指令过程中,凡需执行访问存储器或访问I/O端口的操作都统一交给BIU的外部总线完成,进行一次访问所需的时间称为一个总线周期。一般一个基本的总线周期由4个时钟周期组成。(2)8086CPU在最小模式下构成计算机系统至少应该包括哪几个基本的部分?(3)8086CPU中,标志寄存器包含哪些标志位?各标志位为‘0’,‘1’分别表示什么含义?(4)8086CPU中有哪些通用寄存器和专用寄存器?说明他们的作用。(5)在8086CPU中,已知CS寄存器和IP寄存器的内容分别如下所示,请确定其物理地址. 1)CS=1000H,IP=2000H物理地址:CS*16+IP=10000H+2000H=12000H2)CS=1234H,IP=0C00H物理地址:CS*16+IP=12340H+0C00H=12F40H(6)设(AX)=2345H,(DX)=5219H,请指出两个数据相加或相减后,FLAG中状态标志位的状态.相加:CF=0,SF=0,ZF=0,AF=0,OF=0,PF=0相减:00100011010001011101001000011001补10101101111001111101000100101110CF=0,SF=1,ZF=0,AF=0,OF=0,PF=0(7)8086CPU工作在最小模式下:访问存储器要利用:M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。访问I/O要利用:M/IO、ALE、BHE、RD、WR、DT/R、DEN、READY和数据、地址总线。当HOLD有效并得到响应时,CPU置高阻的信号有:数据/地址总线、数据状态总线及M/IO、BHE、RD、WR、DT/R、DEN、INTA。 第三章3.7练习题P1201.选择题(1)D(2)C(3)A(4)A2.填空题(1)递增1A,3B,5C,8D(2)60H0(3)1F02CH4.请指出下列指令中源操作数和目的操作数的寻址方式。(1)源操作数为立即寻址,目的操作数为寄存器寻址(2)源操作数为立即寻址,目的操作数为寄存器间接寻址(3)源操作数为寄存器间接寻址,目的操作数为寄存器寻址(4)源操作数为寄存器寻址,目的操作数为寄存器寻址(5)单一操作数(源操作数)为寄存器寻址(6)单一操作数(目的操作数)为寄存器寻址(7)源操作数为相对基址变址寻址,目的操作数为寄存器寻址(8)源操作数为寄存器间接寻址,目的操作数为寄存器寻址(9)源操作数为立即寻址和寄存器寻址,目的操作数寄存器寻址(10)单一操作数为段间直接寻址(相对变址寻址) 5.请写出如下程序片段中每条逻辑运算指令执行后标志ZF、SF、和PF的状态:MOVAL,0AH;各标志位保持不变ANDAL,0FH;ZF=0SF=0PF=1ORAL,04BH;ZF=0SF=0PF=1XORAL,AL;ZF=1SF=0PF=16.请写出如下程序片段中每条算术运算指令执行后标志CF、ZF、SF、OF、PF和AF的状态:MOVAL,54H;各标志位保持不变ADDAL,4FH;CF=0ZF=0SF=1OF=1AF=1PF=1CMPAL,0C1H;CF=1ZF=0SF=1OF=0AF=0PF=1SUBAL,AL;CF=0ZF=1SF=0OF=0AF=0PF=1INCAL;CF=0ZF=0SF=OF=0AF=0PF=07.(DS)=3000H,(SS)=1500H,(SI)=010CH,(BX)=0870H,(BP)=0500H,指出下列指令的目的操作数字段寻址方式,并计算目的操作数字段的物理地址。(1)MOV[BX],CX目的操作数为寄存器间接寻址目的操作数的物理地址为:DS×16+0870H=30870H(2)MOV[1000H],BX目的操作数为直接寻址目的操作数的物理地址为:DS×16+1000H=31000H(3)MOV[BP],BX目的操作数为寄存器间接寻址目的操作数的物理地址为:SS×16+0500H=15500H (4)MOV[BP+100],CX目的操作数为寄存器相对寻址目的操作数的物理地址为:SS×16+0500H+64H=15564H(5)MOV[BX+100][SI],CX目的操作数为相对基址加变址寻址目的操作数的物理地址为:DS×16+0870H+64H+010CH=309E0H8.指出如下指令哪些是错误的,并说明原因:(1)MOV[SP],BX错。(2)MOVCS,BX错。CS寄存器不能赋值,要由装入程序确定(3)POPCS错。CS寄存器不能赋值,要由装入程序确定(4)JMPBX对。(5)SUB[BP+DI-1000],AL错。偏移量不能为负。但编译能通过。(6)SHLAX,CX错。源操作数最大为255,只能是CL,不能是CX(7)XCHGES:[BX],AL对。(8)LEAAX,[BX+DI] 对。9.已知(SS)=2800H,(SP)=0010H,(AX)=0FA0H,(BX)=1002H,下列指令连续执行,请指出每条指令执行后SS、SP、AX、BX寄存器中的内容是多少?PUSHAX;(SS)=2800H,(SP)=000EH,(AX)=0FA0H,(BX)=1002HPUSHBX;(SS)=2800H,(SP)=000CH,(AX)=0FA0H,(BX)=1002HPOPAX;(SS)=2800H,(SP)=000EH,(AX)=1002H,(BX)=1002HPOPBX;(SS)=2800H,(SP)=0010H,(AX)=1002H,(BX)=0FA0H10.阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。(1)MOVBL,26HMOVAL,95HADDAL,BLDAAAL=21HBL=26HCF=1(2)MOVAX,1E54HSTCMOVDX,95XORDH,0FFHSBBAX,DXAX=1EF5HCF=111.已知程序段如下:CMPAX,BXJNCK1 JNOK2JMPK3假设有以下三组AX、BX值,那么在程序执行后,分别转向哪里?(1)(AX)=0E301H,(BX)=8F50H转向K1(2)(AX)=8F50H,(BX)=0E301H转向K2(1)(AX)=147BH,(BX)=80DCH转向K3 第四章4.9练习题P1601.选择题(1)CB(2)B(3)B(4)D3.(1)DATA1EQUTHISBYTEDA1DW1234H,567H,89ABH(2)DATA2DW56H,0BCH,79H,14H(3)DATA3DB6DUP(‘c’),2DUP(3,3,1),20DUP(?)(4)STRINGDB‘HELLOWORLD!’4.DATA1DB00H,0AH,10HDATA2DB15DUP(04H,3DUP(08H),09H)DATA3DW6577H,636CH,6D6FH5.LEABX,TABLEMOVBX,OFFSETTABLE8.(1)宏展开: +PUSHAX+MOVAX,AX+SUBAX,AX+CMPAX,0+JGENEXT(0014)+MOVBX,AX+POPAX(2)调用无效。语法错误(立即数的使用)。(3)宏展开:+PUSHAX+MOVAX,[BX+SI]+SUBAX,[BX+SI+X]+CMPAX,0+JGENEXT(0025)+MOVCX,AX+POPAX调用无效。相对基址加变址寻址方式形成的值在汇编时是不知道的。11.CMPNMACROX,Y,SUMPUSHAXPUSHDXMOVAL,XCMPAL,Y JNCK1MOVDL,5MULDLADDAX,YJMPK2K1:MOVAL,YMOVDL,5MULDLADDAX,XK2:MOVSUM,AXPOPAXENDM12.DSEGSEGMENTCHARDB61DUP(?)DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTARTPROCFARMOVAX,DSEGMOVDS,AXMOVDX,OFFSETCHAR MOVAH,0AHINT21HMOVDX,OFFSETCHARMOVAH,09HINT21HMOVAH,4CHINT21HSTARTENDPCSEGENDSENDSTART 第五章5.8练习题4、试编写一汇编程序,要求实现将ASCII码表示的两位十进制数转换为一字节二进制数。DATASEGMENTASCDB36H,35HASCENDDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATADECIBINPROCFARMOVAX,DATAMOVDS,AXMOVBX,OFFSETASCMOVAL,[BX]CMPAL,30HJLEXITCMPAL,39HJGEXITSUBAL,30H MOVDL,[BX+1]CMPDL,30HJLEXITCMPDL,39HJGEXITSUBDL,30HMOVCL,10MULCLADDAL,DLMOVASCEND,ALEXIT:MOVAH,4CHINT21HDECIBINENDPCODEENDSENDDECIBIN5.某存储区中存有20个单字节数,试编写一汇编语言分别求出其绝对值并放回原处。DSEGSEGMENTMUMDB1,2,3,-9,0,7,5,-4,-7,-11,34,-67,-44,-51,1,3,6,8,9,3DSEGENDSCSEGSEGMENT ASSUMECS:CSEG,DS:DSEGSTARTPROCFARPUSHDSXORAX,AXPUSHAXMOVAX,DSEGMOVDS,AXMOVCX,20MOVSI,OFFSETMUMLP1:MOVAL,[SI]ANDAL,ALJNSDONENEGALDONE:MOV[SI],ALINCSILOOPLP1MOVAH,4CHINT21HSTARTENDPCSEGENDSENDSTART6、试编写一汇编程序,将AX中的各位取反,然后统计出AX中“0”的个数,将结果保存到CL中。 CODESEGMENTMAINPROCFARASSUMECS:CODESTART:MOVAX,0E001HMOVDL,0MOVCL,16NOTAXRETEST:ANDAX,AXJSSKIPINCDLSKIP:SHLAX,1LOOPRETESTMOVCL,DLEXIT:MOVAH,4CHINT21HMAINENDPCODEENDSENDSTART12已知a1~a20依次存放在以BUF为首址的数据区,每个数据占两个字节,SUM也是两个字节。试编程计算SUM=a1+a2+a3+...+a20 DATASEGMENTDATDW0,1,8,27,64,-9,-5,6,77,-5,55,88,99,33,55,1,3,5,6,87SUMDW?DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0MOVSUM,AXMOVSI,OFFSETDATMOVCX,20LP1:ADDAX,[SI]INCSIINCSILOOPLP1MOVSUM,AXMOVAH,4CHINT21H MAINENDPCODEENDSENDSTART14编一字程序,计算f(t)=at3+bt2+ct+d。设a,b,c,d,t均为一位十进制数,结果存入RESULT单元。DATASEGMENTAA1DB8BBBDB5CCCDB5DDDDB5TTTDB2QQQDW3DUP(?)RESULTDW?DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETQQQ MOVBL,TTTMOVBH,0MOVAX,BXMULBXMOV[SI],AX;存t2MULBXMOV[SI+2],AX;存t3MOVAL,AA1MOVAH,0MULWORDPTR[SI+2]MOVRESULT,AXMOVAL,BBBMOVAH,0MULWORDPTR[SI]ADDRESULT,AXMOVAL,CCCMULTTTADDRESULT,AXMOVAL,DDDMOVAH,0ADDRESULT,AXMOVCX,RESULT MOVAH,4CHINT21HMAINENDPCODEENDSENDSTART15求出前20个Fibonacci数,存入数据变量FN开始的区域中。Fibonacc数的定义为:f0=0,f1=1,fn+2=fn+fn+1DATASEGMENTF1DW0F2DW1FNDW20DUP(?)RESULTDW?DATAENDSCODESEGMENTMAINPROCFARASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCX,18 MOVAX,F1MOVBX,F2MOVSI,OFFSETFNMOV[SI],AXINCSIINCSIMOV[SI],BXLL:ADDAX,BXADDSI,2MOV[SI],AXMOVBX,[SI-2]LOOPLLMOVAH,4CHINT21HMAINENDPCODEENDSENDSTART 第6章(p231)6.8练习题1.填空题(1)随机存取存储器,消失,只读存储器,不会改变和消失(2)8,13,8(3)0.1452.简答题(3)9,4,14,7(4)8,128*8 第七章7.6练习题1.选择题(1)B(2)CD(3)B2,(1)0100:48B00100:48B34(2)857(3)中断请求、中断判优、中断响应、中断服务、中断返回4,PORT0EQU40HPORT1EQU41H;设置I/O地址号为40H和41HMOVAL,13HMOVDX,PORT0OUTDX,AL;设置ICW1命令字边沿触发方式,单片无级联,需要设置ICW4 INCDX;DX增1,为设置下面的命令字做准备MOVAL,08HOUTDX,AL;设置ICW2,中断类型号为从08H开始的8个MOVAL,09HOUTDX,AL;设置ICW4一般EOI缓冲方式,全嵌套方式5,MOVDX,1207HINAL,DXORAL,01011000B(或者58H)OUTDX,AL7,(1)主片:08H~0FH从片:80H~87H(2)译码器输入可任选6个地址信号,从片的INT输入可以任选主片除IR5的中断源,下面的程序中选的是IR2(3)主片初始化程序: MOVAX,00HMOVDS,AXMOVBX,0DH*4MOVAX,1260HMOVDS:[BX],AXMOVAX,4310HMOVDS:[BX+2],AXMOVAL,11HOUT30H,ALMOVAL,08HOUT31H,ALMOVAL,04HOUT31H,ALMOVAL,1DHOUT31H,AL从片初始化程序:MOVAX,00HMOVDS,AXMOVBX,85H*4MOVAX,2340HMOVDS:[BX],AX MOVAX,4310HMOVDS:[BX+2],AXMOVAL,11HOUT36H,ALMOVAL,80HOUT37H,ALMOVAL,02HOUT37H,ALMOVAL,01HOUT37H,AL 第8章2、I/O接口的主要功能有哪些?一般有哪两种编址方式?两种编址方式各自有什么特点?I/O接口的主要功能有:(l)解决CPU与外设之间速度不匹配问题(2)实现信号电平的转换(3)实现信号格式的转换I/O端口的编址方式有两种:统一编址方式和独立编址方式。(1)统一编址方式(存储器映像寻址)优点:1)简化了指令系统的设计,在微处理器指令集中不必包含I/O操作指令;2)访问I/O设备的指令类型多、功能强,能用访问存储器指令,对I/O设备进行方便、灵活的操作;3)I/O地址空间可大可小,能根据实际系统上的外设数目来调整。缺点:I/O端口占用了存储单元的地址空间,且I/O译码电路变得较复杂。其次,访问存储器的指令一般要比较长,这样延长了输入输出操作时间。(2)独立编址方式优点:1)可读性好,输入输出指令和访问存储器的指令有明显的区别,使程序清晰;2)I/O指令长度短,执行的速度快,占用内存空间少; 3)I/O地址译码电路较简单。缺点:CPU指令系统中必须有专门的IN和OUT指令,而且这些指令的功能没有访问存储器的指令强。4、什么是直接存储器存取方式(DMA)?DMA控制器在CPU与外设的数据传送过程中发挥怎样的作用?直接存储器传送DMA指将外设的数据不经过CPU直接送入内存储器,或者,从内存储器不经过CPU直接送往外部设备。DMA控制器的功能:(1)能向CPU发出总线请求信号(2)能实行对总线的控制(3)能发送地址信号并对内存储器寻址(4)能修改地址指针(5)能向存储器和外设发出读/写控制信号(6)能判断DMA传送是否结束(7)能发出DMA过程结束信号,使CPU能正常工作7、在8086微机系统中,有一外设的接口地址为2A8H~2AFH,请用74LS128译码器设计符合要求的地址译码电路.9、一个采用查询式数据传送的输出接口,其数据端口地址为300H,状态端口地址为301H,外设状态位用D7位表示。如果要将存储器缓冲区DATA中的200个字节数据通过该输出口输出,画出流程图,编写控制程序段。 程序段为:LEASI,DATAMOVCX,200LP1:MOVDX,301HNR:INAL,DXSHLAL,1JNCNRDECDXMOVAL,[SI]OUTDX,ALINCSILOOPLP1 第9章1、(1)D(2)C(3)B(4)D2、填空题(1)3,基本输入/输出方式,选通输入/输出方式,双向总线I/O方式(2)外设响应信号(3)方式选择控制字,置位/复位控制字(4)中断允许信号,PC63、设8255A的端口A和B均工作与方式1,端口A输出,端口B和C为输入,端口A地址为00C0H。(1)写出工作方式控制字。0AFH(2)编写8255A的初始化程序。MOVDX,00C3HMOVAL,0AFHOUTDX,AL(3)若要用置位/复位方式将PC2置为1,PC7清0,试写出相应程序。MOVDX,00C3HMOVAL,05HOUTDX,AL MOVAL,0EHOUTDX,AL4、现拟用8255A设计一个3X3的键盘,并通过发光二极管显示按键状态。要求该键盘能表示数字1~9,且按下1~8按键时,有一个相应的发光二极管点亮,若按下按键9,则8个二极管同时发亮。设计并画出相应接口电路。 第十章3、试编程,要求将8253计数器0设置为方式0,计数初值为3000H,计数器1设置为方式2,计数初值为2010H,计数器2设置为方式4,计数初值为4030H。假设端口地址为284H~287HMOVAL,30H;计数器0MOVDX,287HOUTDX,ALMOVDX,284HMOVAL,00HOUTDX,ALMOVAL,30HOUTDX,ALMOVAL,74H;计数器1MOVDX,287HOUTDX,ALMOVDX,285H MOVAL,10HOUTDX,ALMOVAL,20HOUTDX,ALMOVAL,0B8H;计数器2MOVDX,287HOUTDX,ALMOVDX,286HMOVAL,30HOUTDX,ALMOVAL,40HOUTDX,AL4、8253利用软件产生一次性中断,最好采用哪种方式?若将计数初值送到某端口的计数值寄存器后经过20ms产生一次中断,如何进行编程?设时钟频率CLK为1MHz。N=20000MOVAL,38H;计数器0方式4MOVDX,287HOUTDX,ALMOVDX,284H MOVAX,20000;初值为20000OUTDX,ALMOVAL,AHOUTDX,AL注:答案部分是自己做得,有些许错误,欢迎指出并修改,'