《汇编语言程序设计试题及答案合集 .pdf》由会员分享,可在线阅读,更多相关《汇编语言程序设计试题及答案合集 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、汇编语言程序设计试题及答案合集汇编语言程序设计试题及答案1对于有符号的数来说,下列哪个值最大()A:0F8H B:11010011B C:82 D:123Q2下列有关汇编语言中标号的命名规则中,错误的是()A:通常由字母打头的字符、数字串组成B:标号长度不能超过31 个字符C:?和$不能单独作为标号D: 号不可位于标号首38088/8086 存储器分段,每个段不超过()A.64K 个字 B.32K 个字节C.1 兆个字节 D.64K个字节4寻址指令 MOV CX, BX + DI + 20使用的是哪一种寻址方式()A:寄存器寻址B:相对基址变址寻址C:变址寻址D:基址变址寻址5若 AX= -
2、15 要得到 AX=15应执行的指令是()A.NEG AX B.NOT AX C.INC AX D.DEC AX 68086/8088 系统执行传送指令MOV 时( )A.不影响 标志位 B.影响 DF方向标志C.影响 SF符号标志D.影响 CF进位标志7. 若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用()A:NOT B:OR C:AND D:XOR8下列指令中段默认为堆栈段的是()A.MOV AX ,BX+SI+10 B.ADD AX,ES:SI C.SUB BX ,BP DI D. MOV DX,1000H 9关于 8086/8088 微机系列,下列说法哪个是正确的()A:
3、一个存储单元由16个二进制位组成,简称字。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。C:在内存空间中,可以无限分配段,且段的大小不受限制。D:段与段之间可以邻接,也可以重叠。10下列关于堆栈的说法,错误的是()A:以?先入后出?为原则。B:栈区最高地址单元的前一个单元为栈底。C:运行中 SP寄存器动态跟踪栈顶位置。D:压栈和弹出都是以字节为单位。11表示过程定义
4、结束的伪指令是()A.ENDP B.ENDSC.END D.ENDM 12BUF1 DB 3 DUP(0,2 DUP (1,2),3)COUNT EQU $ BUF1符号 COUNT 等价的值是()A.6 B.18 C.16 D.9 13下列标志位中,可以用来判断计算结果正负的是()A:PF B:SF C:DF D:OF 14下列指令正确的是()A. MOV 100H, BX B.MOV DS, ESC. ADD VBX, CX D.MOV AX, 34H 15下列哪个寄存器是属于指针寄存器()A:SI B:DX C:SP D:ES 二、填空题 (每小题 4 分,共 20 分)1 下列程序段求
5、数组FLD的平均值,结果在AL 中。请将程序填写完整(不考虑溢出)FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _ MOV CX, 8 XOR AX, AX R1:_ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - ADD SI, 2 LOOP R1 MOV CL, 8 IDIV CL HLT 2MOV AX, 1090H SUB AX, 4AE0H JC L1 JO L2 JMP L3 上
6、述程序执行后AX=_ ,程序转向 _ 3假设寄存器 AX=1234H ,DX=0A000H MOV BX, 0 MOV CX, BX SUB CX, AX EDCCH 有借位SBB BX, DX 6000H 5FFF MOV AX, CX EDCCH MOV DX, BX 上述程序段执行后AX=_ ,DX=_ 4MOV AX, 234H MOV CL, 3 ROL AX, CL 注意移的是二进制码DEC AX MOV CX, 4 MUL CX 此段程序执行完后,(AX)= _ , (CX)= _ 5DA1 DB 83H,72H ,61H,94H ,5AH MOV CX ,WORD PTR DA
7、1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - AND CX ,0FH MOV AL ,DA1+3 SHL AL,CL 上述指令序列执行后, AL=_ ,CL=_ 。三、简答题 (每小题 4 分,共 20 分)1如 TABLE为数据段中 0100 单元的符号名,其中存放的内容为0FF00H ,试问以下两条指令有什么区别?指令执行后, AX寄存器的内容是什么 ? MOVAX ,TABLE MOVAX ,OFFSET TABL
8、E 2对于下面的数据定义TAB1 DW10 DUP(?) TAB2 DB 10 DUP(?) TAB3 DB 1234MOVAX ,SIZE TAB1 MOVBL,SIZE TAB2 MOVCL ,SIZE TAB3 三个寄存器中值分别为多少?4已知某个人计算机0000:00800000:00B0区域的内容如下:0000:0080 CC A1 C8 00 80 89 A8 98 65 43 35 23 12 45 C4 00 0000:0090 A4 78 98 56 90 00 00 78 49 03 28 B7 B8 9C A2 B8 0000:00A0 CC A1 C3 00 80 89
9、 A8 98 65 43 35 23 12 45 C4 00 0000:00B0 2A 1B C8 04 00 33 11 23 DC 41 54 BB 90 45 33 01 试求执行软中断指令INT 23H 时,系统将转移到哪里进入中断服务程序。5试计算逻辑地址 4017:000A,4015:0002A和 4010:0007A对应的物理地址。这三个物理地址说明了什么问题?四、编程题 ( 每小题 30 分,共 30 分)1试编制一程序,统计DT_W 字数组中正数、负数和0 的个数,并分别保存在C1,C2和 C3变量中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
10、- - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 11 页 - - - - - - - - - 汇编语言程序设计试题及答案一名词解释(本大题共5 小题,每小题3 分,共 15 分)试解释下列名词的含义。1 逻辑地址:逻辑地址由两个16 位的地址分量构成,其中一个为段基值,另一个为偏移量,两个分量均为无符号数编码 。物理地址 =段基值 16+偏移量2 物理地址: CPU通过地址总线向外发送的 20 位地址 ,在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。3 标志寄存器:标志寄存器(Flag Register)又称程序状态字(P
11、rogram Status Word) ,是 8086/088 中唯一按位操作的寄存器,该寄存器为16 位,有效的标志位共9 位。其中,CF,PF,AF,ZF, SF,OF 为状态标志 ,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF ,DF 为控制标志 ,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。4 存储器寻址方式: 发生在指令的执行周期,需要在执行周期内单独启动总线操作来完成。比寄存器寻址、立即数寻址速度都慢 。5 补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1 的结果。二计算题
12、(本大题共5 小题,每小题4 分,共 20 分)试按照各小题的要求给出计算结果。1 将十进制数100 分别转换为二进制、十六进制数,它们的表示形式分别为多少?解:二进制为 01100100B ,十六进制为64H。2 假设( DS )=0B00H, (BX )=0210H,对于指令MOV DS :120HBX ,AL,其目的操作数的物理地址为多少?解: EA= (BX)+0120H=0330H,物理地址 =(DS )*16+EA=B330H 3 假设( BX )=0210H, (DI)=0060H,对于指令ADD DL,BXDI,其源操作数的偏移量为多少?解:偏移量 =(BX )+(DI)=02
13、70H 4 假设当前( SP )=0060H,连续执行5 条 PUSH 指令后,(SP )=?解: (SP )=0060H 5*2 =0060H -000AH = 0056H 5 对于一个十进制数 65 ,其二进制补码表示形式为多少?解:先求二进制真值-01000001 ,变反加一补码为10111111 三排错题(本大题共4 小题,每小题5 分,共 20 分)每小题列出了一条指令,判断该指令有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2 分,分析正确给3 分,判断错误不给分。1 PUSH 5588H 错误, 操作数不能用立即数;2 MOV DS , 1720H 错误, MO
14、V 指令不能对段寄存器直接传送立即数;3 ADD AX, CL 错误,寄存器长度不匹配;4 AND AX,DX 错误, DX不用于存储器寻址。四程序分析题(本大题共6 小题,每小题5 分,共 30 分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。(寄存器中的内容请使用十六进制形式给出)1 阅读如下程序片段MOV AL,4CH 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - MOV
15、 BL,0B5H ADD AL,BL 执行上述程序片段后, (AL)= 01H (1 分) , (BL)= 0B5H (1 分) ,CF= 1 (1 分) ,OF= 0 (1 分) ,PF= 0 (1 分)2 阅读如下程序片段MOV AL,0F3H MOV DL,0C4H ADD AL,DL AND AL,0FH 执行上述程序片段后, (AL)= 07H (1 分) , (AF )= 不确定(1 分) ,CF= 0 (1 分) ,OF= 0 (1 分) ,PF= 0 (1 分)3 阅读如下程序片段MOV AL,7EH MOV CL,04H ROL AL ,CL 执行上述程序片段后, (AL)=
16、 0F9H (2 分) , (CL)= 04H ( 1 分) ,CF= 1 ( 1 分) ,OF= 无意义(1 分)4 阅读如下程序片段MOV AX ,0632H MOV BX ,0C202H SUB AX ,BX INC AX 执行上述程序片段后, (AX)= 4431H (2 分) , (CF)= 1 (2 分) ,OF= 0 ( 1 分)5 阅读如下程序片段,假设(DS )=0100H,字节单元( 01024H)=56H,字节单元( 01025H)=28H MOV BX ,0024H LEA BX ,BX OR BX ,0 ADC BX,BX 执行上述程序片段后, (BX)= 287AH
17、 (3 分) , (CF)= 0 (2 分) ,OF= 0 ( 1 分)6 阅读如下程序片段,假设(SP )=0064H MOV AX ,0001H MOV BX ,0002H PUSH AX PUSH BX POP AX POP BX 执行上述程序片段后, (AX)= 0002H (2 分) , (BX )= 0001H (2 分) ,(SP)= 0064H ( 1 分)五程序设计题(本大题共2 小题,第一小题7 分,第二小题8 分,共 15 分)1 试编写一程序片段,实现BL 高 4 位与低 4 位相互交换( 7 分)解: MOV CL ,4;名师资料总结 - - -精品资料欢迎下载 -
18、- - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - ROL BL,CL 2 试编写一程序片段,不使用乘除法指令,实现(AX )*5+14 )/ 2 的功能( AX中的数据理解为补码) (8 分)解: MOV BX,AX MOV CX,2 SAL AX,CX ADD AX,BX ADD AX,14 SAR AX,1 汇编语言程序设计试题及答案六名词解释(本大题共5 小题,每小题3 分,共 15 分)试解释下列名词的含义。6 寄存器:计算机系统内,位于CPU内部的存储单元,CPU
19、访问此类存储单元不需要使用总线。7 物理地址: CPU通过地址总线向外发送的20 位地址, 在访问内存单元前,CPU必须先将CPU内部的逻辑地址转换为物理地址。8 段基值:逻辑地址的一个组成部分,用于指示一个段在内存中的起始地址。9 寻址方式:指令获取操作数的方式。10补码:计算机系统内部用于表示带符号数的一种编码,正整数的补码为其真值本身,负整数的补码为其真值变反加1 的结果。七计算题(本大题共5 小题,每小题4 分,共 20 分)试按照各小题的要求给出计算结果。6 将十进制数100 分别转换为二进制、十六进制数,它们的表示形式分别为多少?答案:二进制为 01100100B ,十六进制为64
20、H 7 假设( DS )=0C00H , (BX )=0210H,对于指令MOV DS : 100HBX ,AL,其目的操作数的物理地址为多少?答案: EA = ( BX )+0100H = 0310H,物理地址 = (DS )*16 + EA = 0C000H + 0310H = 0C310H 8 假设( BX )=0100H, (SI)=0020H,对于指令ADD DL,BXSI,其源操作数的偏移量为多少?答案: EA = (BX )+(SI)+ 0 = 0120H 9 假设当前( SP )=0060H,连续执行5 条 PUSH 指令后,(SP )=?名师资料总结 - - -精品资料欢迎下
21、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 11 页 - - - - - - - - - 答案:每执行一条PUSH指令, (SP ) 被减 2, 因此执行 5 条 PUSH 指令后, (SP ) =0060H 5*2 =0060H -000AH = 0056H 10对于一个十进制数 80 ,其二进制补码表示形式为多少?答案:首先求得二进制真值为 01010000B ,负数补码为变反加1 的结果,即 10110000B 八排错题(本大题共4 小题,每小题5 分,共 20 分)每小题列出了一条指令,判断该指令
22、有无语法错误,如果存在语法错误,请指出具体的错误原因,判断正确给2 分,分析正确给3 分,判断错误不给分。5 MOV CS , 0600H 参考答案:错误,不能使用MOV 指令传递立即数给CS 6 PUSH 074CH 参考答案:错误,单操作数指令不能使用立即数7 ADD AX, CL 参考答案:错误,寄存器长度不匹配8 OR BX ,CX 参考答案:错误,CX不能用于存储器寻址九程序分析题(本大题共6 小题,每小题5 分,共 30 分)每小题列出了一段小的程序片段和相关存储单元的初始值,请按题目的要求分析各程序片段的运行结果。(寄存器中的内容请使用十六进制形式给出)7 阅读如下程序片段MOV
23、 AL,4CH MOV BL,86H ADD AL,BL 执行上述程序片段后, (AL)= 0D2H (1 分) , (BL)= 86H ( 1 分) ,CF= 0 (1 分) ,OF= 0 ( 1 分) ,PF= 1 (1 分)8 阅读如下程序片段MOV AL,0F3H MOV DL,0C4H ADD AL,DL 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - AND AL,0FH 执行上述程序片段后, (AL)= 07H
24、(1 分) , (AF)= 不确定(1 分) ,CF= 0 (1 分) ,OF= 0 ( 1 分) ,PF= 0 (1 分)注意:逻辑运算指令中,除NOT指令外, CF、OF均置 0,AF为不确定9 阅读如下程序片段MOV AL,6FH MOV CL,04H ROL AL ,CL 执行上述程序片段后, (AL)= 0F6H (2 分) , (CL)= 04H (1 分) ,CF= 0 (1 分) ,OF= 不确定(1 分)注意:移位指令中,当指令的移位次数大于1 时, OF为不确定10阅读如下程序片段MOV AX ,0632H MOV BX ,0C202H SUB AL ,BL SBB AH
25、,BH INC AX 执行上述程序片段后, (AX)= 4431H (2 分) , (CF)= 1 (2 分) ,OF= 0 (1 分)注意: INC 指令不影响CF标志位11阅读如下程序片段, 假设 (DS ) =0100H, 字节单元(01024H) =56H, 字节单元(01025H)=28H MOV BX ,0024H LEA BX ,BX AND BX,0FFH ADC BX,BX 执行上述程序片段后, (BX)= 287AH (3 分) , (CF)= 0 (2 分) ,OF= 0 (1 分)12阅读如下程序片段,假设(SP )=0064H 名师资料总结 - - -精品资料欢迎下载
26、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - MOV AX ,0001H MOV BX ,0002H PUSH AX PUSH BX POP AX POP BX 执行上述程序片段后, (AX)= 0002H (2 分) , (BX )= 0001H (2分) ,(SP)= 0064H (1 分)十程序设计题(本大题共3 小题,每小题5 分,共 15 分) (注:不是唯一答案)3 试编写一程序片段,实现BL 高 4 位与低 4 位相互交换( 5 分)参考解答:MOV
27、 CL, 4 ROL BL, CL 4 试编写一程序片段,不使用乘除法指令,实现(AX )*5+14 )/ 2 的功能( AX中的数据理解为补码) (5 分)参考解答:MOV BX, AX MOV CL, 2 SAL AX, CL ADD AX, BX ADD AX, 14 SAR AX, 1 5 试编写一完整程序, 实现 88242567H与 0A435C218H两个 32 位无符号数相加的功能。 ( 要求编写完整源程序,含程序框架)(5 分)参考解答:DATA SEGMENT VAR1 DD 88242567H VAR2 DD 0A435C218H VAR3 DD ? DATA ENDS
28、STACK1 SEGMENT STACK DW 40H DUP(0) STACK1 ENDS CODE SEGMENT 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 11 页 - - - - - - - - - ASSUME CS:CODE, DS:DATA, SS:STACK1 BEGIN: MOV AX, DATA MOV DS, AX MOV AX, VAR1 ADD AX, VAR2 MOV VAR3, AX MOV AX, VAR1+2 ADC AX, VAR2+2 MOV VAR3+2, AX MOV AH, 4CH INT 21H CODE ENDS END BEGIN 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 11 页 - - - - - - - - -