您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 汇编语言程序设计练习题及参考答案
1一、单项选择题从每小题的四个备选答案中,选出一个正确答案,并将正确答案的番号填人括号内。1.用来存放下一条将要执行的指令地址的寄存器是(B)A.SPB.IPC.BPD.CS2.要使串处理从低地址向高地址进行,应把标志位置为(D)A.IF=1B.TF=0C.DF=1D.DF=03.使状态标志位CF清零的错误指令是(C)A.ORAX,AXB.SUBAX,AXC.MOVCF,0D.CLC4.设SP=1110H,执行PUSHAX指令后,SP的内容为(B)A.SP=1112HB.SP=110EHC.SP=1111HD.SP=110FH5.汇编源程序出现语法错误的指令有(D)A.MOV[BX+SI],ALB.MOVAX,[BP+DI]C.MOVDS,AXD.MOVCS,AX6.下列串操作指令中,必须同时指明源串和目的串地址的指令是(D)A.STOSWB.LODSWC.SCASWD.CMPSW7.设BL中有一无符号数,实现把BL中的数乘以2,应选用的指令是(B)A.SHRBL,1B.SHLBL,1C.SARBL,1D.RCRBL,18.执行PUSHAX指令的正确步骤是(A)A.1.SP←SP-1,(SP)←AHB.1.(SP)←AH,SP←SP-12.SP←SP-1,(SP)←AL2.(SP)←AL,SP←SP-1C.1.SP←SP+1,(SP)←AHD.1.(SP)←AH,SP←SP+12.SP←SP+1,(SP)←AL2.(SP)←AL,SP←SP+19.CF=1时转移到目标地址的条件转移指令是(B)A.JNCB.JCC.JZD.JS10.在执行NEG指令时,对标志位CF有影响,其影响的规则是(C)A.对正数求补时,CF=0B.对负数求补时,CF=0C.对非零数求补时,CF=1D.对零求补时,CF=111.算术右移SAR和逻辑右移SHR两条指令执行后结果完全相同的情况是(A)A.目的操作数最高位为0B.目的操作数最高位为1C.目的操作数为任意情况D.无论什么情况都不可能相同12.设AL=04H,BL=0F8H,执行IMULBL指令后,结果是(D)A.AX=0032HB.AX=00E0HC.AX=03E0HD.AX=0FFE0H13.指令的操作数中,允许出现表达式,例如BUF1与BUF2均为变量名,下面指令中语法正确的是(D)A.MOVAX,BUFl*BUF2B.MOVAX,BUF1/BUF2C.MOVAX,BUF1+ES:BUF22D.MOVAX,BUF2-BUF114.下面指令中,操作数的寻址方式为寄存器间接寻址的指令是(C)A.INCWORDPTR[BX+SI]B.INCCX,[SI+COUNT]C.NEGBYTEPTR[BX]D.ADDAX,B15.NUMEQU80HDADB34HANDDA,NUM上述语句执行后,DA中的内容是(D)A.0B4HB.80HC.34HD.016.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为(A)A.立即、直接、间接B.直接、间接、立即C.直接、立即、间接D.不一定17.语句DA1DB2DUP(3,5,7)汇编后,该语句可等同于的语句是(D)A.DA1DB3,5,7B.DA1DB2,3,5,7C.DA1DB3,5,7,2D.DA1DB3,5,7,3,5,718.MOVAL,80HMOVCL,2SARAL,CL上述指令序列执行后,结果是(D)A.AL=40HB.AL=20HC.AL=0C0HD.AL=0E0H19.下面是实现将AL内容加1的压缩型BCD码加法程序段,其中正确的指令序列是(A)A.INCALB.ADDAL,1DAADASC.ADDAL,1D.STCDAAAAA20.现有数据存储如图所示:30100H30101H30102H30103H设AL=01H,BX=0100H,DS=3000H执行换码指令XLAT后正确的结果是(B)A.AL=20HB.AL=38HC.AL=00HD.AL=41H21.若定义DATDW'A',则(DAT)和(DAT+1)两个相邻的内存中存放的数据是(B)A.0041HB.4100H20H38H41H55H3C.xx41HD.41xxH[注]选项C.和D.中的XX表示任意数据。22.假设VAR为变量,指令MOVBX,OFFSETVAR的寻址方式是(C)A.直接寻址B.间接寻址C.立即寻址D.存储器寻址23.下列指令中,不影响标志位的指令是(A)A.SUBBX,BXB.RORAL,1C.JNCLabelD.INTn24.假定(DS)=4000H,(DI)=0100H,(401OOH)=55H,(40101H)=AAH,试问执行指令LEABX,[DI]后,(BX)=(C)A.0100HB.55AAHC.AA55HD.4100H25.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序为(A)A.直接、立即、间接D.直接、间接、立即C.立即、直接、间接D.不一定?26.MOVAX,ES:[BX][SI]的源操作数的物理地址是(B)A.16×(DS)+(BX)+(SI)B.16×(ES)+(BX)+(SI)C.16×(SS)+(BX)+(SI)D.16×(CS)+(BX)+(SI)27.已知:VARDW1,2,$+2,5,6若汇编时VAR分配的偏移地址是0010H,则汇编后0014H单元的内容是:(D)A.6HB.14HC.5HD.16H?28.PC机采用向量中断方式处理8级外中断,中断号依次为08H~0FH,在RAM0:002CH单元开始依次存放23H、FFH、00H和FOH四个字节,该向量对应的中断号和中断程序人口是(B)A.0CH,23FF:00F0HB.0BH,F000:FF23HC.0BH,00F0:23FFHD.0CH,F000:FF23H29.下列80X86指令中,不合法的指令是(D)A.INAX,21HB.MOVBL,ALC.MOVSBD.SHLAX,630.执行下面的程序段后,(AX)=(B)DATASEGMENTTABDW1,2,3,4,5,6ENTRYEQU3DATAENDSCODESEGMENTASSUMECS:CODE,DS:CODEMOVAX,DATAMOVDS,AX...MOVBX,OFFSETTABADDBX,ENTRYMOVAX,[BX]...A.0003HB.0300HC.0400HD.0004H431.下面指令中影响状态位CF的指令是(D)A.INCAXB.DECAXC.NOTAXD.NEGAX32.判当CX=0时,转ZERO执行的错误指令是(D)A.CMPCX,0B.MOVAX,CXJZZEROJZZEROC.ORCX,CXD.JCXZZEROJZZERO33.执行1号DOS系统功能调用后,从键盘输入的字符应存放在(A)A.AL中B.BL中C.CL中D.DL中34.设数据定义如下:ARRAYDW1,2,3执行指令ADDSI,TYPEARRAY相当于完成下面同等功能的指令是(B)A.ADDSI,1B.ADDSI,2C.ADDSI,3D.ADDSI,035.设数据定义如下:BUFDW100DUP(?)执行指令:MOVCX,LENGTHBUF相当于完成下面同等功能的指令是(D)A.MOVCX,00C8HB.MOVCX,0200HC.MOVCX,0064HD.MOVCX,0100H36.完成对字单元BUF的内容加1运算,下面错误的指令是(C)A.MOVBX,BUFB.MOVBX,OFFSETBUFINCBXINCWORDPTR[BX]MOVBUF,BXC.MOVBX,BUFD.MOVBX,0INCWORDPTR[BX]INCWORDPTRBUF[BX]37.完成对寄存器BX的内容求补运算,下面错误的指令是(D)A.NEGBXB.NOTBXINCBXC.XORBX,0FFFFHD.MOVAX,0INCBXSUBAX,BX38.判当AX的内容为负数时,转MINUS执行,下面错误的指令是(D)A.NOTAXB.TESTAX,8000HJNSMINUSJNZMINUSC.SHLAX,1D.ORAX,AXJCMINUSJZMINUS39.下面指令序列执行后,正确的结果是(D)MOVAL,0FEHADDAL,ALADCAl,ALA.AL=0F8HB.AL=0F8HCF=1CF=0C.AL=0F9HD.AL=0F9H5CF=0CF=140.现有数据存储如图所示:30100H30101H30102H30103H设AL=01H,BX=0100H,DS=3000H执行换码指令XLAT后正确的结果是(D)A.AL=00HB.AL=4OHC.AL=01HD.AL=79H41、一个8位二进制数的补码为10001010,其原码的16进制形式为CA.-0AHB.-75HC.-76HD.8AH42、1号DOS功能调用时,欲将得到的数字的ASCII码转换为该数的实际数值时,可使用A指令来实现。A.ANDB.ORC.XORD.NOT43、设DS=8225H,DI=5678H,指令MOVAX,[DI]源操作数的物理地址是DA.8D89DHB.86198HC.8B698HD.878C8H44、指令JGLAB是指当标志满足_B__条件时转移到标号LAB处执行A.((SFXOROF)ORZF)=1B.(SFXOROF)=0ANDZF=0C.(SFXOROF)=0ORZF=1D.CF=145、8086汇编语言中,BCD码的运算是借用二进制数的运算指令并加以调整来实现的。其中非压缩型BCD码减法的调整指令为_C__A.AAAB.DAAC.AASD.DAS46、除法指令中,对于双字除以字运算,商在_A__寄存器中。A.ALB.AHC.AXD.DX47、MOVAX,COUNT[SI]的源操作数在_B__A.CS段B.DS段C.SS段D.ES段48、汇编程序至少必须有一个_A__A.CS段B.DS段C.ES段D.SS段49、LOOPNE指令当满足_C__时执行循环操作。A.ZF=1且CX=0B.ZF=1且CX≠0C.ZF=0且CX≠0D.ZF=0且CX=050、如果一标号与访问它的JMP指令之间的相对位移量在-128~+127字节的范围内,则可将该标号说明为_C__转移A.FARB.NEARC.SHORTD.MIDDLE?51、10号功能调用可从键盘上输入一串字符,调用时_B___应指向一输入缓冲区。A.DS:AXB.DS:DXC.ES:AXD.ES:DX52、串操作指令中,目的串通过_D__两个寄存器寻址:A.DS,SIB.DS,DIC.ES,SID.ES,DI53、将DX的内容除以2,正确的指令是C___。A.DIV2B.DIVDX,2C.SARDX,1D.SHLDX,1?54、在END语句中的标号名称能提供_B__寄存器的数值,作为程序执行时的起始地址。40H79H24H30H6A.DS:SIB.CS:IPC.ES:DID.SS:SP55、段内调用时CALL指令将_B__保存进栈,以供过程返回时使用。A.CSB.IPC.CS:IPD.SS:SP56、执行后使BX=0的同时也使CF=0,OF=0的指令是(A)A.XORBX,BXB.ORBX,BXC.ANDBX,BXD.CMPBX,BX?57、在执行DAA指令,当高四位BCD码校正时产生进位,如要把此进位值送入AH中,对这进位值的操作应是(C)A.DAA校正指令的功能已自动加在AH中B.进位值在AF中,校正后根据AF内容再加在AH中C.进位值在CF中,校正后根据CF内容再加在AH中D.进位值在AL最高位上,校正后根据AL最高位内容再加在AH中58、比较两个带符号的数A、B,当A=B时程序转移,测试的条件为(C)A.ZF=1B.ZF=0C.SF=1D.SF=059.设物理地址(21000H)=20H,(21001H)=30H,(21002H)=40H。如从地址21001H中取出一个字的内容是(D)A.2030HB.3040HC.3020HD.4030H60.没有语法错误的输入指令是(A)A.INAL,30H
本文标题:汇编语言程序设计练习题及参考答案
链接地址:https://www.777doc.com/doc-2368363 .html