• 43.50 KB
  • 2022-04-22 11:20:18 发布

《微机原理及应用》教材课后习题参考答案.doc

  • 5页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'《80X86/Pentium微型计算机原理及应用》教材课后习题参考答案第三章3-5(1)MOVSI,2100H源:立即数;目标:寄存器(2)MOVCX,DISP[BX]源:基址,EA=BX+DISP,PA=DS×16+BX+DISP;目标:寄存器(3)源:寄存器;目标:寄存器间接寻址EA=SI,PA=DS×16+SI(4)源:基址加变址,EA=BX+SI,PA=DS×16+BX+SI;目标:寄存器(5)源:寄存器;目标:寄存器(6)源:基址,EA=BX+10H,PA=DS×16+BX+10H;目标:寄存器(7)源:寄存器间接,EA=BX,PA=ES×16+BX;目标:寄存器(8)源:带位移量的基址加变址,EA=BX+SI+20H,PA=DS×16+BX+SI+20H;目标:寄存器(9)源:寄存器;目标:寄存器间接,EA=BP,PA=SS×16+BP(10)源:寄存器;目标:存储器,EA=SP-2,PA=SS×16+SP-23-7(1)源操作数错,基址+基址不能用在存储器寻址方式中,只能基址+变量,改成MOVAX,[BX+SI](2)错,VALUE1和VALUE2一般为自己定义的变量名称,则此两操作数的组合形式为存储器和存储器,ADD指令无此组合形式(3)错,立即数不能直接传给段寄存器(4)错,CS不能作为目标操作数(5)错,立即数不能作为目标操作数,两个操作数互换位置即可(6)如果VALUE1是用DW定义的WORD型变量,则此题正确,否则错误(7)错,段寄存器不能直接传给段寄存器(8)错,移位次数超过1时,应该先将移位次数送给CL,改成MOVCL,3;ROL[BX][DI],CL(9)错,NOT操作符只有一个操作数(10)对,CS不能作为目标操作数,但可以作为源操作数(11)错,不能直接将立即数压入堆栈(12)错,两处错误,1:IN指令应该AL在前,端口地址在后;2:端口地址100H超过8位数能表示的范围,应该先将100H送给DX,改成MOVDX,100H;INAL,DX(13)错,LEA指令的第二操作数必需为存储器寻址方式(14)错,CX不能作为寄存器间接寻址方式,应将CX改成BX/BP/SI/DI之一3-8(1)AX=3355H,SP=1FFEH(2)AX=3355H,DX=4466H,SP=1FFCH3-9BX=4154H,[2F246H]=6F30H3-10BX=139EH3-11SI=0180H,DS=2000H3-12(1)CL=F6H(2)[1E4F6H]=5678H(3)BX=9226H,AX=1E40H (4)SI=9226H,[SI]=[1E4F6]=0024H(5)AX=5678H,[09226H]=1234H3-13AF=0,CF=1,OF=1,SF=0,ZF=03-14(1)MOVAX,0XORAX,AXSUBAX,AX(2)MOVCL,4ROLBL,CL(或RORBL,CL)(3)题中没规定N1和N2是8位还是16位数,现假定都8位数(也可假定是16位数,程序不一样)MOVAH,0MOVAL,N1IDIVN2MOVM1,ALMOVM2,AH(4)题目的意思即使BX的b4,b6,b11位清零ANDBX,0F7AFH(5)XORAX,4020H(6)TESTDX,0201H(7)TESTCL,1JNZNEXTINCCL(或DECCL)NEXT:3-15假设题目的意思理解为编号从1开始(1)LEABX,BLOCK+(6-1)*2MOVAX,[BX](2)LEABX,BLOCKMOVAX,10[BX](3)LEABX,BLOCKMOVSI,0MOVAX,10[BX][SI](4)MOVAX,BLOCK+103-16(1)结果存在地址是580H端口中,[580H]=60H(2)结果存在地址是580H端口中,[580H]=8060H(即[580H]=60H,[581H]=80H)(3)结果存在AL中,AL=[40H]=4FH(4)结果存在AX中,AL=[40H]=4FH,AH=[41H](题目中没有给出端口41H中的值)(5)结果存在地址是45H端口中,[45H]=60H(6)结果存在地址是45H端口中,[45H]=8060H(即[45H]=60H,[46H]=80H)3-17假定每小题中NUM1和NUM2都是和题中指定的操作数等长,即(1)中NUM1和NUM2为字变量,(2)(3)中为字节变量,(4)中为双字变量(1)MOVAX,NUM2ADDNUM1,AX(2)MOVCX,4LEABX,NUM1XORAL,AL;AL清零 L1:ADDAL,[BX]INCBXLOOPL1MOVRES,AL(3)MOVCX,8LEABX,NUM1XORAX,AXL1:ADDAL,[BX]JNCL2INCAHL2:INCBXLOOPL1MOVAX,WORDPTRRES(4)MOVAX,WORDPTRNUM1ADDWORDPTRNUM2,AXMOVAX,WORDPTRNUM1+1ADCWORDPTRNUM2+1,AX;(MOV指令不影响CF标志位,否则不能这么写)3-18(1)MOVCX,8LEABX,NUM1XORAX,AXL1:ADDAL,[BX]DAAJNCL2INCAHL2:INCBXLOOPL1MOVAX,WORDPTRRES(2)MOVAL,NUM1SUBAL,NUM2DASMOVRES,AL差=90H,CF=13-19(1)MOVAL,NUM1MULNUM2;8位乘8位MOVWORDPTRRES,AX(2)MOVAX,NUM1IMULNUM2;16位乘16位MOVWORDPTRRES,AXMOVWORDPTRRES+2,DX(3)MOVAL,NUM1MOVBL,46CBW DIVBLMOVWORDPTRRES,AX(4)MOVAX,NUM1CWDIDIVNUM2(或DIVNUM2)MOVWORDPTRRES,AXMOVWORDPTRRES+2,DX3-20(1)53乘以2MOVAL,53SHLAL,1结果106(2)-49乘以2MOVAL,-49;-49补码为CFHSHLAL,1;AL=9EH,真值即为-98结果-98除以2类似3-21(1)BX=009AH(2)BX=15CH(3)BX=8071H(4)BX=10F7H(5)BX=FF1CH3-22(1)DX=[20506]=0006HBX=0004H(2)SP=1FFEH,[SP]=CX=FFFEH(3)CX=BX=0004H(4)AX=8094H,CF=0(5)AL=[20508H]=87H(6)AL=94H+37H+1=CCH,CF=0,AL=32H(7)SI=9(8)DI=9(9)[DI]=[2050A]=AL=94H(10)AX=17C6H,DX=8094H(11)AH=84H,BL=4(12)IP=DX=17C6H3-23(1)将存储器中以FIRST为起始地址连续10个字节复制到以SECOND为起始地址的地方(2)将存储器中数据段中以偏移地址0404H为起始地址,连续80H个字节的空间清零3-24MOVBX,5MULBXMOVBX,2DIVBX 3-26MOVBX,0A80HMOVAL,5XLAT3-27(1)IP=1256(2)IP=3280H(3)IP=2450H3-28IP=009A,CS=2000,[SP]=8F,[SP+1]=3DH,[SP+2]=50H,[SP+3]=40H3-29CMPAL,1JNZLAB1CMPAL,2JNZLAB2CMPAL,4JNZLAB3最后一个条件(若位0至位2都是0,则顺序执行),相当于没有,因为不管符不符合这个条件,程序都会按顺序执行。3-31MOVAX,XCMPAX,50JGN_HIGHSUBAX,YJOOVERFLOWJNSNEXTNEGAXNEXT:MOVRESULT,AX3-32(1)MOVAX,ZADDAX,XSUBW,AXMOVAX,WMOVZ,AX(2)MOVAX,XADDAX,6ADDAX,WADDR,9SUBAX,R(3)MOVAX,WMULXADDY,6DIVYMOVZ,AXMOVR,DX'