您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 微型计算机技术孙德文版课后习题答案全解
第1章(略)第2章(略)第3章3.1.已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。在以上给出的环境下,试问下列指令或指令段执行后的结果如何?(1)MOVCL,[BX+20H][SI];(2)MOV[BP][DI],CX;(3)LEABX,[BX+20H][SI]MOVAX,[BX+2];(4)LDSSI,[BX][DI]MOV[SI],BX;(5)XCHGCX,[BX+32H]XCHG[BX+20H][SI],AX解:(1)CL=[09226H]=F6H(2)[BP][DI]=[1E4F6H]=CX=5678H(3)BX=0056H;AX=[09228H]=1E40H(4)SI=[09226]=00F6H;[SI]=[1E4F6H]=BX=0024H(5)AX=5678H;[BX+20H][SI]=1234H3.2.设,DS=1000H:SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(1135OH)=OA5H,(11351H)=3CH,(11352H)=OFFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H下列各指令都在此环境下执行,在下列各小题的空格中填入相应各指令的执行结果。(1)MOVAX,1352HAX=(2)MOVAX,[1352H]AX=(3)MOV0150H[BX],CH(11350H)=,(11351H)=(4)MOVAX,0150H[BP]AX=(5)POPAXAX=,SP=(6)ADD[SI],CX(11354H)=,(11355H)=,SF=ZF=,PF=,CF=,OF=(7)SUBBH,0150H[BX][SI]BH=,SF=,ZF=,PF=,CF=,OF=(8)INCBYTEPTR0152H[BX](11352H)=,(11353H)=______,CF=______(9)INCWORDPTR0152H[BX](11352H)=,(11353H)=,CF=(10)SARBYTEPTR0150H[BX],1(11350H)=,CF=,OF=(11)SALBYTEPTR0150H[BX],(11350H)=,CF=,OF=解:(1)AX=1352H(2)AX=26FFH(3)[11350H]=33H;[11351H]=3CH(4)AX=5188H(5)AX=5188H;SP=1352H(6)[11354H]=ECH;[11355H]=1AH;SF==ZF=PF=OF=0;CF=1(7)BH=75H;SF==ZF=PF=OF=0;CF=1(8)[11352H]=00H;[11353H]=26H;CF不变(9)[11352H]=00H;[11353H]=27H;CF不变(10)[11350H]=D2H;CF=1;OF=0(11)[11350H]=4AH;CF=1;OF=13.3.设下列各转移指令的第一字节在内存中的地址为CS=2000H和IP=016EH,且环境均为;DS=6000H,BX=16C0H,(616COH)=46H,(616C1H)=01H,(616C2H)=00H,(616C3H)=30H,(61732H)=70H,(61733H)=17H。写出下列各无条件转移指令执行后CS和IP值。各指令左首的16进制编码是该指令的机器码。指令中的目的地址用相应的标号表示。(1)EBE7JMPSHORTAGAIN(2)E90016JMPNEARPTROTHER(3)E3JMPBX(4)FF67JMPWORDPTR0072H[BX](5)FFEBJMPDWORDPTR[BX]解:(1)CS=2000H;IP=0157H(2)CS=2000H;IP=1771H(3)CS=2000H;IP=16C0H(4)CS=3000H;IP=0146H(5)CS=2000H;IP=1770H(6)CS=3000H;IP=0146H3.4.阅读下列各小题的指令序列,在后面空格中填入该指令序列的执行结果。(1)MOVBL,85HMOVAL,17HADD,AL,BLDAAAL=,BL=,CF=(2)MOVAX,BXNOTAXADDAX,BXINCAXAX=,CF=(3)MOVAX,OFF60HSTCMOVDX,96XORDH,OFFHSBBAXDXAX=,CF=(4)MOVBX,OFFFEHXOVCL,2SARRX,CLBX=,CF=解:(1)AL=02H;BL=85H;CF=1(2)AX=0000H;CF=0(3)AX=0000H;CF=0(4)BX=0FFFFH;CF=13.5.阅读分析下列指令序列ADDAX,BXJNOL1JNOL2SUBAX,BXJNCL3JNOL4JMPL5若AX和BX的初始值分别如下列五种情况所示,则执行该指令序列后,程序将分别转向何处执行(注:即写出转移去的目的地址L1~L5中的一个)。(1)AX=14C6H,BX=80DCH(2)AX=0B568H,BX=54B7H(3)AX=42C8H,BX=608DH(4)AX=0D023H,BX=9FD0H(5)AX=9FD0H,BX=0D023H解:(1)转向L1(2)转向L1(3)转向L2(4)转向L5(5)转向L53.6.ANDAL,ALJZBRCH1RCRAL,1JZBRCH2RCLAL,1INCALJZBRCH3…上述程序运行后,试回答:(1)当(AL)=时,程序转向BRCH1(2)当(AL)=时,程序转向BRCH2(3)当(AL)=时,程序转向BRCH3解:(1)AL=00H(2)AL=01H(3)AL=0FFH3.7.完成下列操作,选用什么指令:(1)将AX的内容、减去0520H,和上次运算的借位;(2)将变量名TABL的段地址送AX;解:(1)SBBAX,0520H(2)MOVAX,SEGTABL3.8.D1DB20HDUP(?)D2DWD1请写出用一条指令实现取D1的偏移地址→SI中的三种方法。解:(1)MOVSI,OFFSETDI(2)MOVSI,D2(3)LEASI,DI3.9.程序段1程序段2MOVAX,147BHMOVAX,99D8HMOVBX,80DCHMOVBX,9847HADDAX,BXSUBAX,BXJNOL1JNCL3JNCL2JNOL4上述两个程序段执行后,分别转移到哪里?解:(1)转向L1(2)转向L33.10.MOVBX,0FFHANDBX,0FFFHORBX,0F0FHXORBX,00FFH上述程序段运行后,BX=,CF=解:BX=0F00H;CF=03.11.CMPAX,BXJGENEXTXCHGAX,BXNEXT:CMPAX,CXJGEDONEXCHGAX,CXDONE:…试回答:(1)上述程序段执行后,原有AX,BX,CX中最大数存放在哪个寄存器中?(2)这三个数是带符号数还是无符号数?解:AX;带符号数第4章4.1画出下列语句中的数据在存储器中的存储情况。ARRAYBDB63,63H,‘ABCD’,3DUP(?),2DUP(1,3)ARRAYWDW1234H,5,‘AB’,‘CD’,?,2DUP(1,3)解:地址数据地址数据ARRAYB3FH42H63H41H41H44H42H43H43H?44H??01H?00H?03H01H00H03H01H01H00H03H03H34H00H12H05H00H4.2.程序中数据定义如下:DATA1DW?DATA2DB32DUP(?)DATA3DD?DLENGTHEQU$-DATA1此时DLENGTH的值是多少?解:DLENGTH=38=26H4.3.程序中数据定义如下:ARRAYDB‘ABCDEF’RESULTDB?TABLEDW20DUP(?)则执行指令MOVAX,TYPERESULT后,AX=?MOVBX,TYPETABLE后,BX=?MOVCX,LENGTHTABLE后,CX=?MOVDX,LENGTHARRAY后,DX=?MOVSI,SIZETABLE后,SI=?MOVDI,SIZEARRAY后,DI=?解:AX=1;BX=2;CX=20;DX=1;SI=40;DI=14.4.指令ANDAX,7315HAND0FFH中,两个AND有什么差别?这两个AND操作分别在什么时候执行?解:左为助记符,由CPU执行指令时运算;右为运算符,由汇编程序在汇编时运算。4.5.设BX=1034H,则执行下列指令MOVAX,BXAND0FFHMOVCX,BXEQ1234H后,AX和CX各为多少?若BX=1234H,则结果如何?解:AX=0034H;CX=0000H;AX=0034H;CX=FFFFH4.6.设已知语句为:ORG0024HDATA1DW4,12H,$+4则执行指令MOVAX,DATA1+4后AX的值是多少?解:AX=002CH4.7.已知数据定义语句为:BUFFERDB16DUP(O,2DUP(1))则其中字数据单元内容为0100H的单元数是多少?解:16个4.8.要在以DA1为首址的数据区中依次存放下列数据;‘A’,‘B’,O,0,‘C’,‘D’,0,0请分别用DB、DW和DD语句实现。解:DATDB‘A’,‘B’,0,0,’C’,’D’,0,0DATDW‘BA’,0,’DC’,0DATDB‘BA’,’DC’4.9.试按下列要求在数据段中依次书写各数据定义语句:(1)以DA1为首字节的连接存储单元中存放20H个重复的数据序列:2,3,10个4,一个7。(2)DA2为字符串变量,用字变量(DW)设置一字符串;‘STUDENTS’(按此顺序存放在各单元中)(3)用等值语句给符号COUNT赋值以DA1为首址的数据区共占有的字节数,此等值语句必须放在最后一语句。解:(1)DAT1DB20HDUP(2,3,10DUP(4),7)(2)DAT2DW‘TS’,‘DU’,’NE’,’ST’(3)COUNTEQUDATA2-DATA14.10.下面程序段是实现从键盘输入十个一位10进数后累加。最后累加和以非压缩BCD码形式存放在AH(高位)和AL(低位)中。试把程序段中所空缺的指令填上。XORBX,BXLOP:MOVAH,01H;键盘字符输入INT21HMOVAH,BHADDAL,BLMOVBX,AX解:MOVCX,10AAA4.11.下面程序段的功能是把DA1数据区的数0~9转换为对应的ASCII码。试完善本程序段。DA1DBOOH,O1H,02H,03H,04H,05H,06H,07H,08H,09HASCIDB10DUP(?)CUNT=ASCI-DA1LEASI,DA1LEADI,ADCILOP1:MOYAL,[SI]MOV[DI],ALINCSIINCDILOOPLOP1解:MOVCX,COUTADDAL,30H4.12.BUFF‘ABD$QC%$A…XYZ’CONTEQU$-BUFF…CLDLEADI,BUFFMOVCX,CONTMOVAL,‘$’XORDX,DXNEXT:REPNZSCA,SBCMPCX,0JZK1INCDXJMPNEXTK1:…上述程序段运行后,DX中的值表示的意义是什么?解:DX中为$个数4.13.设A,B是长度为10的字节数组,用串操作指令编写程序实现AB两数组内容的相互交换,试完善本程序。DATASEGMENTADB1,2,3,4,5,6,7,8,9,0AHDRGOO10HBDB0AH,9,8,7,6,5,4,3,2,1DATAENDS…LEASI,ALEADO,BMOVCX,10LOP:LODSBXCHGAL,[DI]DECDISTOSBINCDILOOPLOP解:XCHGSI,DIXCHGSI,DI4.14.现有一子程序:S
本文标题:微型计算机技术孙德文版课后习题答案全解
链接地址:https://www.777doc.com/doc-7306850 .html