您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 【汇编语言程序设计】试题及答案合集
《汇编语言程序设计试题及答案》合集汇编语言程序设计试题及答案1.对于有符号的数来说,下列哪个值最大(D)A:0F8HB:11010011BC:82D:123Q2.下列有关汇编语言中标号的命名规则中,错误的是(D)A:通常由字母打头的字符、数字串组成B:标号长度不能超过31个字符C:?和$不能单独作为标号D:.号不可位于标号首3.8088/8086存储器分段,每个段不超过(D)A.64K个字B.32K个字节C.1兆个字节D.64K个字节4.寻址指令MOVCX,[BX+DI+20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址5.若AX=-15要得到AX=15应执行的指令是(A)A.NEGAXB.NOTAXC.INCAXD.DECAX6.8086/8088系统执行传送指令MOV时(A)A.不影响标志位B.影响DF方向标志C.影响SF符号标志D.影响CF进位标志7.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)A:NOTB:ORC:ANDD:XOR8.下列指令中段默认为堆栈段的是(C)A.MOVAX,[BX+SI+10]B.ADDAX,ES:[SI]C.SUB[BX],[BP][DI]D.MOVDX,[1000H]9.关于8086/8088微机系列,下列说法哪个是正确的(D)A:一个存储单元由16个二进制位组成,简称字。B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。C:在内存空间中,可以无限分配段,且段的大小不受限制。D:段与段之间可以邻接,也可以重叠。10.下列关于堆栈的说法,错误的是(D)A:以“先入后出”为原则。B:栈区最高地址单元的前一个单元为栈底。C:运行中SP寄存器动态跟踪栈顶位置。D:压栈和弹出都是以字节为单位。11.表示过程定义结束的伪指令是(A)A.ENDPB.ENDSC.ENDD.ENDM12.BUF1DB3DUP(0,2DUP(1,2),3)COUNTEQU$-BUF1符号COUNT等价的值是(B)A.6B.18C.16D.913.下列标志位中,可以用来判断计算结果正负的是(B)A:PFB:SFC:DFD:OF14.下列指令正确的是(CD)A.MOV[100H],[BX]B.MOVDS,ESC.ADDV[BX],CXD.MOVAX,34H15.下列哪个寄存器是属于指针寄存器(C)A:SIB:DXC:SPD:ES二、填空题(每小题4分,共20分)1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出)FLDDW10,-20,30,-60,-71,80,79,56_LEASI,FLD______MOVCX,8XORAX,AXR1:__ADDAX,[SI]_____ADDSI,2LOOPR1MOVCL,8IDIVCLHLT2.MOVAX,1090HSUBAX,4AE0HJCL1JOL2JMPL3上述程序执行后AX=___C5B0____,程序转向_____L1__3.假设寄存器AX=1234H,DX=0A000HMOVBX,0MOVCX,BXSUBCX,AXSBBBX,DXMOVAX,CXMOVDX,BX上述程序段执行后AX=___0EDCCH____,DX=__5FFFH_____4.MOVAX,234HMOVCL,3ROLAX,CLDECAXMOVCX,4MULCX此段程序执行完后,(AX)=___467CH____,(CX)=_____4__5.DA1DB83H,72H,61H,94H,5AH┇MOVCX,WORDPTR[DA1]ANDCX,0FHMOVAL,[DA1+3]SHLAL,CL上述指令序列执行后,AL=___0A0H____,CL=___03H____。三、简答题(每小题4分,共20分)1.如TABLE为数据段中0100单元的符号名,其中存放的内容为0FF00H,试问以下两条指令有什么区别?指令执行后,AX寄存器的内容是什么?MOVAX,TABLEMOVAX,OFFSETTABLE2.对于下面的数据定义TAB1DW10DUP(?)TAB2DB10DUP(?)TAB3DB‘1234’┇MOVAX,SIZETAB1MOVBL,SIZETAB2MOVCL,SIZETAB3三个寄存器中值分别为多少?4.已知某个人计算机0000:0080~0000:00B0区域的内容如下:0000:0080CCA1C8008089A898654335231245C4000000:0090A478985690000078490328B7B89CA2B80000:00A0CCA1C3008089A898654335231245C4000000:00B02A1BC80400331123DC4154BB90453301试求执行软中断指令INT23H时,系统将转移到哪里进入中断服务程序。5.试计算逻辑地址4017:000A,4015:0002A和4010:0007A对应的物理地址。这三个物理地址说明了什么问题?四、编程题(每小题30分,共30分)1.试编制一程序,统计DT_W字数组中正数、负数和0的个数,并分别保存在C1,C2和C3变量中。汇编语言程序设计试题及答案一.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。1.逻辑地址:逻辑地址由两个16位的地址分量构成,其中一个为段基值,另一个为偏移量,两个分量均为无符号数编码。物理地址=段基值×16+偏移量2.物理地址:CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。3.标志寄存器:标志寄存器(FlagRegister)又称程序状态字(ProgramStatusWord),是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。4.存储器寻址方式:发生在指令的执行周期,需要在执行周期内单独启动总线操作来完成。比寄存器寻址、立即数寻址速度都慢。5.补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。二.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?解:二进制为01100100B,十六进制为64H。2.假设(DS)=0B00H,(BX)=0210H,对于指令MOVDS:120H[BX],AL,其目的操作数的物理地址为多少?解:EA=(BX)+0120H=0330H,物理地址=(DS)*16+EA=B330H3.假设(BX)=0210H,(DI)=0060H,对于指令ADDDL,[BX][DI],其源操作数的偏移量为多少?解:偏移量=(BX)+(DI)=0270H4.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?解:(SP)=0060H–5*2=0060H-000AH=0056H5.对于一个十进制数–65,其二进制补码表示形式为多少?解:先求二进制真值-01000001,变反加一补码为10111111三.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2分,分析正确给3分,判断错误不给分。1.PUSH5588H错误,操作数不能用立即数;2.MOVDS,1720H错误,MOV指令不能对段寄存器直接传送立即数;3.ADDAX,CL错误,寄存器长度不匹配;4.ANDAX,[DX]错误,DX不用于存储器寻址。四.程序分析题(本大题共6小题,每小题5分,共30分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。(寄存器中的内容请使用十六进制形式给出)1.阅读如下程序片段MOVAL,4CHMOVBL,0B5HADDAL,BL执行上述程序片段后,(AL)=01H(1分),(BL)=0B5H(1分),CF=1(1分),OF=0(1分),PF=0(1分)2.阅读如下程序片段MOVAL,0F3HMOVDL,0C4HADDAL,DLANDAL,0FH执行上述程序片段后,(AL)=07H(1分),(AF)=不确定(1分),CF=0(1分),OF=0(1分),PF=0(1分)3.阅读如下程序片段MOVAL,7EHMOVCL,04HROLAL,CL执行上述程序片段后,(AL)=0F9H(2分),(CL)=04H(1分),CF=1(1分),OF=无意义(1分)4.阅读如下程序片段MOVAX,0632HMOVBX,0C202HSUBAX,BXINCAX执行上述程序片段后,(AX)=4431H(2分),(CF)=1(2分),OF=0(1分)5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28HMOVBX,0024HLEABX,[BX]ORBX,0ADCBX,[BX]执行上述程序片段后,(BX)=287AH(3分),(CF)=0(2分),OF=0(1分)6.阅读如下程序片段,假设(SP)=0064HMOVAX,0001HMOVBX,0002HPUSHAXPUSHBXPOPAXPOPBX执行上述程序片段后,(AX)=0002H(2分),(BX)=0001H(2分),(SP)=0064H(1分)五.程序设计题(本大题共2小题,第一小题7分,第二小题8分,共15分)1.试编写一程序片段,实现BL高4位与低4位相互交换(7分)解:MOVCL,4;ROLBL,CL2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/2的功能(AX中的数据理解为补码)(8分)解:MOVBX,AXMOVCX,2SALAX,CXADDAX,BXADDAX,14SARAX,1汇编语言程序设计试题及答案六.名词解释(本大题共5小题,每小题3分,共15分)试解释下列名词的含义。6.寄存器:计算机系统内,位于CPU内部的存储单元,CPU访问此类存储单元不需要使用总线。7.物理地址:CPU通过地址总线向外发送的20位地址,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。8.段基值:逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。9.寻址方式:指令获取操作数的方式。10.补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1的结果。七.计算题(本大题共5小题,每小题4分,共20分)试按照各小题的要求给出计算结果。6.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?答案:二进制为01100100B,十六进制为64H7.假设(DS)=0C00H,(BX)=0210H,对于指令MOVDS:100H[BX],AL,其目的操作数的物理地址为多少?答案:EA=(BX)+0100H=0310H,物理地址=(DS)*16+EA=0C000H+0310H=0C310H8.假设(BX)=0100H,(SI)=0020H,对于指令ADDDL,[BX][SI],其源操作数的偏移量为多少?答案:EA=(BX)+(SI)+0=0120H9.假设当前(SP)=0060H,连续执行5条PUSH指令后,(SP)=?答案:每执行一条PUSH指令,(SP)被减2,因此执行5条PUSH指令后,(SP)=0060H–5*2=0060H-000AH=0056H10.对于一个十进制数–80,其二进制补码表示形式为多少?答案:首先求得二进制真值为–01010000B,负数补码为变反加1的结果,即10110000B八.排错题(本大题共4小题,每小题5分,共20分)每小题列出了一条指令,判断该指令
本文标题:【汇编语言程序设计】试题及答案合集
链接地址:https://www.777doc.com/doc-1510843 .html