汇编语言复习题附答案.docx
《汇编语言复习题附答案.docx》由会员分享,可在线阅读,更多相关《汇编语言复习题附答案.docx(20页珍藏版)》请在冰豆网上搜索。
汇编语言复习题附答案
汇编语言复习题
注:
蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。
在此文档最后最后附有课后四、六章的答案,大家抓紧时间复习哦!
一、选择题
1.把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B)。
A.汇编程序B.连接程序C.机器语言程序D.源代码程序
2.在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是(C)。
A..SS和SPB.DS和DIC.CS和IPD.ES和SI
3.为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C)。
A.物理地址B.逻辑地址C.端口地址D.段地址
4.MOVAX,3064H,该指令中源操作数采用的寻址方式是(A)。
A.立即B.直接C.寄存器相对D.寄存器间接
5.换码指令的助记符是(C)。
A.XCHGB.LEASC.XLATD.MOV
6.如果A≥B(A、B有符号数)发生转移,应选择的条件转移指令是(JGE)。
7.下列符号中,可用作标识符的是(C)。
A.MOVB.AXC.MSG1D.1ABC
8.XDB10HDUP(1,2)存变量定义语句拥有了(A)个字节的存储空间。
A.20DB.10DC.20HD.10H
9.当DF=0时,执行串操作指令MOVSB,变址寄存器SI、DI的值将(C)。
A.不变B.减1C.加1D.无法确定
10.如下指令可将AX寄存器容改变的是(A)。
A.ANDAX,BXB.TESTAX,BXC.CMPAX,BXD.XCHGAX,AX
11.16位CPU支持的I/O地址围是(D)。
A.0~0FFFFFHB.0~0FFFFHC.0~0FFFHD.0~0FFH
12.MULCL指令实现的功能是(A)。
A.无符号乘法:
AXAL×CLB.有符号乘法:
AXAL×CL
C.无符号乘法:
DXAL×CLD.有符号乘法:
DXAL×CL
13.DOS系统功能调用(INT21H)中,显示字符串的功能号是(D)。
A.01HB.02HC.08HD.09H
14.在16位CPU读取指令时,需要用到的寄存器对是(C)。
A.SS和SPB.DS和DIC.CS和IPD.ES和SI
15.下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B)。
A.MOVAX,23HB.MOVAX,[BX+SI]C.SUBAX,[BX]D.ADDAX,BX
16.有存变量定义语句:
VARDW10DUP(1,2),1234H,VAR的属性TYPE、LENGTH和SIZE的值分别是(D)。
A.1,20,20B.2,20,40C.2,22,44D.2,10,20
17、在下列语句中,AGAIN称为(C)。
AGAIN:
INCSI
A.指令B.寄存器C.标号D.变量
18、十六进制数88H,可表示成下面几种形式,请找出错误的表示(A)。
A.8位二进制数-8的补码B.带符号十进制数-120
C.压缩型BCD码十进制数88D.表示无符号十进制数136
19、将AL中的最低4位置为0而不改变其他位的正确指令是(B)。
A.ORAL,0F0HB.ANDAL,0F0HC.ORAL,0FHD.ANDAL,0FH
20、某存单元的物理地址为297E0H其对应的逻辑地址表示错误的是(C)。
A.296EH:
100HB.295EH:
200HC.287EH:
100HD.297EH:
0H
21、与二进制数00011011等值的十进制数为(B)。
A.26B.27C.28D.30
22、表达式“12HXOR78H”的值是(C)。
A.3AHB.80HC.6AHD.90H
23、某存单元的逻辑地址为296EH:
100H,其对应的物理地址是(A)。
A.297E0HB.2A6EHC.297F0HD.296E0H
24、16位微机分段管理存储空间,但每段容量最大不超过(C)。
A.8KB.16KC.64KD.1M
25、下列操作数的寻址方式正确的是(D)。
A.[AX]B.[SI+DI]C.BX+90D.BX
26汇编语言源程序经汇编程序汇编后产生的文件的扩展名是( B )。
A、EXE B、OBJ C、ASM D、LST
27在程序执行过程中,IP寄存器始终保存的是( C)。
A、上一条指令的首地址 B、本条指令的首地址。
C、下一条指令的首地址 D、需计算有效地址后才能确定地址。
28设DS=1000H,ES=2000H,BX=3000H,指令ADD AL,[BX]的源操作数的物理
址为( A )。
A、13000H B、23000H C、33000H D、3000H
29、汇编语言属于( D)。
A、用户软件 B、系统软件 C、高级语言 D、机器语言
30、当使用BP作编程地址时,此时使用的是( D)段。
A、CS B、DS C、ES D、SS
31、汇编语言源程序是(A)程序。
A.不可直接执行的 B.经连接后就可直接执行的
C.经汇编程序汇编后就可执行的 D.可直接执行的
32、8086/8088CPU的寄存器组中,16位的寄存器共有(D)个。
A.10 B.12 C.14 D.16
33、设BX=2000H,SI=3000H,指令MOVAX,[BX+SI+8]的源操作有效地址为( B)。
A、5000H B、5008H C、23008H D、32008H
34、伪指令是( C)规定的汇编说明符,它在源程序汇编时进行说明。
A、DEBUG B、LINK C、MASM D、EDIT
35、已知CALLBX执行前SP=100H,执行后SP的容为。
(C)
A、100H
B、102H
C、98H
D、0FEH
36、若定义“A EQU 100”,执行“MOV AX,A”后,AX=( C)。
A、A的偏移地址 B、A单元中的容
C、100 D、A的段地址
37、一个段最大可定义( B)字节。
A、1M B、64K C、32K D、16K
38、设A和B为字变量,C为标号,下列指令中不正确的是( C)。
A、MOV AX,A B、MOV AX,B
C、JNE A D、JMP C
39、下述指令中不影响CF的指令是( B)。
A、SHL AL,1 B、INC CX
C、ADD [BX],AL D、SUB AX,BX
40、两个整数补码9CH和7AH相加运算后,会产生( C)。
A、无溢出且无进位 B、无溢出但有进位
C、有溢出且有进位 D、有溢出但无进位
41、指令JMP WORD PTR[BX]属于( A )寻址。
A、段直接 B、段间接 C、段间直接 D、段间间接
42、指令MOV AX,[BX+SI+8]的源操作数属于( D )寻址。
A、直接 B、寄存器相对 C、基址变址 D、相对基址变址
43、指令( A)不改变CF的容。
A、DEC AL B、ADD AX,CX
C、SUB [BX],CL D、SBB AL,DL
44、十进制数字74所对应的压缩型BCD码的形式是( B )。
A、74 B、74H C、4AH D、4A
45、十进制数字85所对应的非压缩型BCD码的形式是( D )。
A、0085 B、0085H C、0805 D、0805H
46、设AL=67H,执行“CMP AL,76H”后,AL=( C )。
A、76H B、0DFH C、67H D、00
二、判断题
MOVAL,BX(错)
MOVDS,SS(错)
MOV[BX],[DI](错)
POPCS(对)
MOVDS,5678H(错)
ADD1234H,CX(错)
CLD(对)
SHLBX,AL(错)
MULDX(对)
LEAAX,[BX+DI](对)
ADDDS,5678H(对)
STC(对)
CMP234H,CX(错)
MULDX,10H(错)
LEAAX,[BX+DI](对)
XCHGES,AX(对)
POPAL(错)
SUBAL,SI(错)
MOVDS,SS(错)
SALDX,AL(错)
MOVAX,BL(错)
MUL25(错)
SHRBX,CH(错)
PUSHCS(对)
LEAAX,[BX+SI](对)
三、简答题
1、标志寄存器共有那些标志位?
答:
有运算结果标志位和状态控制标志位两大类,其中运算结果标志位有进位标志位CF、奇偶标志PF、辅助进位标志AF、零标志ZF、符号标志SF、溢出标志OF。
状态控制标志位有方向标志DF、中断允许标志IF、陷阱标志TF。
2.标号和变量所具有哪三种属性?
答:
段属性、偏移量属性、类型属性。
3、写出16位CPU的段寄存器的助记符和中文名称。
答:
CS------代码段寄存器
DS------数据段寄存器
ES------附加段寄存器
SS------堆栈段寄存器
4、指出下列指令源操作数(第二操作数)的寻址方式。
(1)MOVAX,1000[BX][DI]基址变址相对寻址
(2)MOVBX,[1000H]直接寻址
(3)ADDSI,AX寄存器寻址
(4)MOVAX,100立即数寻址
(5)MOVAX,[SI]寄存器间接寻址
5、在8088/8086的寻址方式中,与数据有关的寻址方式分为哪七种寻址方式?
答:
立即数寻址、寄存器寻址、直接寻址、寄存器间接寻址、相对寻址、基址变址寻址、基址变址相对寻址。
6、已知DS=1000H,BX=100H,SI=2,存储单元[11200H]~[11203H]依次存放(十六进制)12、34、56、78,说明下列每条指令执行完后AX寄存器的容。
(1)MOVAX,[1200H]3412H
(2)MOVAX,[BX+1101H]5634H
(3)MOVAX,[BX+SI+1100H]7856H
7、编写将字节数据70h输出到端口地址为220H的指令序列。
解MOVDX,220H
MOVAL,70H
OUTDX,AL
8、按要求写出下列相应的存变量定义语句。
(1)定义一个字节区域,第一个字节的值为10,其后跟100个初值为0的连续字节。
解:
DB10,100DUP(0)
(2)先定义一个字符串STRING,其偏移量指定为10,其初值为“abcdef”,然后再定义5个字类型的数组ARRAY,要求STRING和ARRAY偏移量相同。
解:
ORG10
STRINGDB‘abcdef’
ORG10
ARRAYDW5DUP(?
)
(3)定义一个以-1为结束符的字符串,该串中含有换行符和回车符。
解:
db0dh,0ah,’-1’
(4)从偶地址开始定义20个字,其初值为1。
解:
EVEN
DW20DUP
(1)
(5)定义100个字,其初值为0。
解:
DW100DUP(0)
9、设数据段定义如下:
DATA SEGMENT
V1 DW 1234h,3456h
V2 DB ‘ab’
V3 = $+5
V4 DB 10 DUP(?
)
V5 DW v4
DATA ENDS
请回答:
(1)该数据段占用的存有多少字节?
(18D)
(2)v3的值为多少?
(11D)
(3)执行“MOV AX,v5”指令后,AX值为多少?
(6H)
(4)执行“MOV AL,BYTE PTR v2”指令后,AL值为多少?
(a)
10、设数据段定义如下:
DATA SEGMENT
v1 DB 0ah,0c4h
v2 DW 1,2,3
v3 DB 4,100 DUP(?
)
v4 DB ‘ABCDE’
v5 DW v3
v6 EQU $-v3
DATA ENDS
请回答:
(1)该数据段占用的存有多少字节?
(116D)
(2)v5单元中的值是多少?
(8H)
(3)v6的值是多少?
(108D)
(4)执行“MOV AL,v4+2”指令后,AL的值是多少?
。
(C)
11、下列数值在存中连续存储,试画出其在存的存储形式。
(1)字节:
7,8,‘1’、‘a’、‘A’和-1
(2)字:
12H、0AB56H和-1,0
(3)双字:
-765H、56789256H和0,-1
解:
它们的存示意图如下:
(注:
此题中的存物理地址可以自己任意指定,只要连续即可)
12下列操作可使用哪些寄存器?
(1)加法和减法。
(AX,BX,CX,DX,AL,AH,BL,BH,CL,CH,DL,DH,SI,DI)
(2)循环计数。
(CX,CL)
(3)乘法和除法。
(BX,CX,AH,BL,BH,CL,CH,DL,DH)
(4)指示程序已执行到哪条指令的地址。
(CS,IP)
(5)指示当前从堆栈中弹出数据的地址。
(SP)
(6)表示运算结果为零。
(ZF)
13、按要求编写指令序列。
(1)将立即数1234H与BX指示存储单元偏移地址的容相加。
ADD[BX],1234H
(2)将AX寄存器中的高字节和低字节容交换。
XCHGAH,AL
(3)右移DX4位,并把0移入最高位。
MOVCL,4
SHRDX,CL
(4)用一条指令实现把(BX)和(SI)之和传送给DX。
LEADX,[BX+SI]
(5)检测BX中的第2、8和10位中是否有1位为1。
TESTBX,1000000010B
(6)将DX—AX中的32位数算术左移1位。
SHLAX,1
RCLDX,1
(7)以BX和SI寄存器作基址变址寻址方式,把该单元中的一个字传送到AX。
MOVAX,[BX+SI]
14编写从端口地址为220H的端口读入一个字节的指令序列。
MOVDX,220H
INAL,DX
15、在汇编语言中,如何表示二进制、八进制、十进制、十六进制的数值?
答:
(1)二进制:
在书写二进制时,在数据后面紧跟一个B,其一般形式为bn-1…b1b0B,其表示元素只有0和1;
(2)八进制:
在书写八进制时,在数据后面紧跟一个Q,其基本元素为0、1、、、7;
(3)十进制:
在书写十进制时,在数据后面紧跟一个D,其基本元素为0、1、、、9;
(4)十六进制:
在书写十六进制时,在数据后面紧跟一个H,其基本元素为0、1、、、A、B、C、D、E、F,其中A、B、C、D、E、F分别代表10、11、12、13、14、15。
若十六进制的第一个字符是字母,则在之前必须添加一个“0”。
16、汇编语言的主要特点有哪些?
答:
(1)与机器相关性;
(2)执行的高效率性;
(3)编写程序的复杂性;
(4)调试程序的复杂性。
17、设BX=1000H,SI=2000H,位移量D=3000H,请指出下列各种寻址方式的有效地址是什么?
(1)使用D的直接寻址EA=D=3000H
(2)使用BX寄存器的间接寻址EA=(BX)=1000H
(3)使用BX寄存器的相对寻址EA=(BX)+D=1000H+3000H=4000H
(4)基址变址寻址EA=(BX)+(SI)=1000H+2000H=3000H
(5)相对基址变址寻址EA=(BX)+(SI)+D=1000H+2000H+3000H=6000H
四、程序阅读题
1.有下列程序,试分析该程序,并在程序的后面写出该程序实现的功能。
DATASEGMENT
SOURCEDB?
,?
;两个无符号数
MAXDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVAL,SOURCE
CMPAL,SOURCE+1
JNCBRANCH
MOVAL,SOURCE+1
BRANCH:
MOVMAX,AL
HLT
CODEENDS
END
程序的功能是:
。
参考答案:
比较两个无符号数的大小,把大数存入变量MAX中。
2、设A,B,C,X和Y都是有符号的字变量,阅读下列程序段,回答后面的问题。
MOVAX,C
SUBAX,120D
CWD
MOVCX,DX
MOVBX,AX
MOVAX,A
IMULB
ADDAX,BX
ADCDX,CX
IDIVC
MOVX,AX
MOVY,DX
请回答:
上述程序段完成的运算公式是。
上述程序段执行后,商存于,余数存于。
参考答案:
(C-120+A*B)/C,X,Y
3.将下列程序补充完整(即在画线的地方填入相应的容),使该程序实现如下的功能:
DATASEGMENT
XDB?
YDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVAL,X
AL,0
JGEBIGPTR
MOVY,3
HLT
BIGPTR:
JEEQUPTR
MOVY,
HLT
:
MOVY,2
HLT
CODEENDS
END
参考答案:
CMP,1,EQUPTR:
4、以ARRAY为首址的字单元中,存放了COUNT个有符号数,下面程序是找出其中最大数并送给变量BIG,请把程序中所空缺的指令填上。
DATA1SEGMENT
ARRAYDW1,2,9,-12,15,19
COUNTEQU$—BUFF
BIGDW?
DATA1ENDS
CODE1SEGMENT
ASSUMECS:
CODE1,DS:
DATA1
START:
MOVAX,DATA1
MOVDS,AX
MOVAX,ARRAY
MOVCX,COUNT/2
JCXZEXIT
LEABX,BUFF
AGAIN:
JGENEXT
MOVAX,[BX]
NEXT:
ADDBX,2
MOVBIG,AX
EXIT:
MOVAH,4CH
INT21H
CODE1ENDS
ENDSTART
参考答案:
CMPAX,[BX]
LOOPAGAIN
5、阅读下列程序,回答后面的问题。
DATA1SEGMENT
BUFFDW-1,3,11,-2,-5,9
XDW?
DATA1ENDS
CODE1SEGMENT
ASSUMECS:
CODE1,DS:
DATA1
START:
MOVAX,DATA1
MOVDS,AX
MOVAX,BUFF
MOVCX,6
LEABX,BUFF
AGAIN:
CMPAX,[BX]
JLENEXT
MOVAX,[BX]
NEXT:
ADDBX,2
LOOPAGAIN
MOVX,AX
MOVAH,4CH
INT21H
CODE1ENDS
ENDSTART
请回答:
(1)指令JLE的功能是。
(2)上述程序段的功能是,上述程序段执行后,X等于。
参考答案:
若小于或等于则转移,数组BUFF的最小值送X,-5
6.下面程序段使用1号DOS功能调用从键盘接受两个数字。
如该程序段执行时,从键盘输入‘2’和‘5’,请问执行后,(AX)=_______,(BL)=。
……
MOVAH,01H
INT21H
MOVBL,AL
MOVAH,01H
INT21H
XORAH,AH
ADDAL,BL
AAA
MOVBL,0
JCEXIT
MOVBL,1
EXIT:
参考答案:
0007H,01H
7、设V、X、Y和Z都是有符号的字变量,下面程序段是实现运算公式:
(V-(X*Y+Z-540))/X,请在空格中填入应有的容。
MOVAX,X
IMULY
MOVCX,AX
MOVBX,
MOVAX,Z
CWD
ADDCX,AX
BX,DX
SUBCX,540
BX,0
MOVAX,V
CWD
SUBAX,CX
SBBDX,BX
参考答案:
DX,
ADC
SBB
IDIVX
8、下面程序查找字符串STRING中是否有字母"B",有则AL=0;否则AL=-1,请将程序填写完整。
MOVES,SEGSTRING
LEA,STRING
MOVCX,20;假设字符串长度为20
CLD
REPNZ
JZYES
NO:
MOVAL,-1
YES:
MOVAL,0
EXIT:
......
参考答案:
DI
MO