汇编语言复习题附答案.docx
《汇编语言复习题附答案.docx》由会员分享,可在线阅读,更多相关《汇编语言复习题附答案.docx(20页珍藏版)》请在冰豆网上搜索。
![汇编语言复习题附答案.docx](https://file1.bdocx.com/fileroot1/2022-12/8/debe59a7-cdf0-4073-9dc8-533a12ee020f/debe59a7-cdf0-4073-9dc8-533a12ee020f1.gif)
汇编语言复习题附答案
汇编语言复习题注:
蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。
在此文档最后最后附有课后四、六章的答案,大家抓紧时间复习哦!
一、选择题
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时,执行串操作指令MOVS,B变址寄存器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)。
28设DS=1000H,ES=2000H,BX=3000H,指令ADDAL,[BX]的源操作数的物理址为(A)。
A、13000HB、23000HC、33000HD、3000H
29、汇编语言属于(D)。
A、用户软件B、系统软件C、高级语言D、机器语言
30、当使用BP作编程地址时,此时使用的是(D)段。
34、伪指令是(C)规定的汇编说明符,它在源程序汇编时进行说明。
A、DEBUGB、LINKC、MASMD、EDIT
35、已知CALLBX执行前SP=100H,执行后SP的内容为。
(C)
A、100H
B、102H
C、98H
D、0FEH
36、若定义“AEQU100”,执行“MOVAX,A”后,AX=(C)。
A、A的偏移地址B、A单元中的内容
C、100D、A的段地址
37、一个段最大可定义(B)字节。
A、1MB、64KC、32KD、16K
38、设A和B为字变量,C为标号,下列指令中不正确的是(C)。
A、MOVAX,AB、MOVAX,B
C、JNEAD、JMPC
39、下述指令中不影响CF的指令是(B)。
A、SHLAL,1B、INCCX
C、ADD[BX],ALD、SUBAX,BX
40、两个整数补码9CH和7AH相加运算后,会产生(C)。
A、无溢出且无进位B、无溢出但有进位
C、有溢出且有进位D、有溢出但无进位
41、指令JMP
WORDPTR[BX]属于
(A)寻址。
A、段内直接
B、
段内间接
C、段间直接
D
、段间间接
42、指令MOV
AX,
[BX+SI+8]的源操作数属于(D
)
寻址。
A、直接
B、寄存器相对
C、基址变址
D、相对基址变址
43、指令(
A)
不改变CF的内容。
A、DECAL
B
、ADDAX,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,
执行
“CMPAL,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
(
对)
POP
AL
(
错)
SUB
AL,SI
(
错)
MOV
DS,SS
(
错
)
SAL
DX,AL
(
错
)
MOV
AX,BL
(
错
)
MUL
25
(
错
)
SHR
BX,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个字类型的数组ARRA,Y要求STRING和ARRAY偏移量相同。
解:
ORG10STRINGDB
abcdef
ORG10
ARRAYDW5DUP(?
)
(3)定义一个以-1为结束符的字符串,该串中含有换行符和回车符
解:
db0dh,0ah,'-1'
(4)从偶地址开始定义20个字,其初值为1。
解:
EVEN
DW20DUP
(1)(5)定义100个字,其初值为0。
解:
DW100DUP(0)
9、设数据段定义如下:
DATASEGMENT
V1
DW
V2
DB
V3
=
V4
DB
V5
DW
DATAENDS
1234h,3456h
ab'
$+5
10DUP(?
)
v4
请回答:
(1)该数据段占用的内存有多少字节?
(18D)
(2)v3的值为多少?
(11D)
(3)执行“MOVAX,v5”指令后,AX值为多少?
(6H)
(4)执行“MOVAL,BYTEPTRv2”指令后,AL值为多少?
(a)
10、设数据段定义如下:
DATASEGMENT
v1
DB
0ah,0c4h
v2
DW
1,2,3
v3
DB
4,100DUP(?
)
v4
DB
‘ABCDE'
v5
DW
v3
DATAENDS
请回答:
(1)该数据段占用的内存有多少字节?
(116D)
(2)v5单元中的值是多少?
(8H)
(3)v6的值是多少?
(108D)
(4)执行“MOVAL,v4+2”指令后,AL的值是多少?
。
(C)11、下列数值在内存中连续存储,试画出其在内存的存储形式。
(1)字节:
7,8,‘1'、‘a'、‘A'和-1
(2)字:
12H、0AB56H和-1,0
(3)双字:
-765H、56789256H和0,-1
解:
它们的内存示意图如下:
(注:
此题中的内存物理地址可以自己任意指定,只要连续即可)
12340H
12341H
12342H
第
(2)题
第
(1)题
9B
F8
FF
FF
56
92
78
56
00
00
00
00
FF
FF
FF
FF
13000H
13001H
13002H
第(3)题
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,DX15、在汇编语言中,如何表示二进制、八进制、十进制、十六进制的数值?
答:
(1)二进制:
在书写二进制时,在数据后面紧跟一个其表示元素只有0和1;
(2)八进制:
在书写八进制时,在数据后面紧跟一个
(3)十进制:
在书写十进制时,在数据后面紧跟一个
(4)十六进制:
在书写十六进制时,在数据后面紧跟一个A、B、C、D、E、F,其中A、B、C、D、E、F分别代表10、制的第一个字符是字母,则在之前必须添加一个“0”。
16、汇编语言的主要特点有哪些?
答:
(1)
(2)
(3)
(4)
B,其一般形式为bn-1⋯b1b0B,
Q,
D,
11、
其基本元素为0、其基本元素为0、
H,其基本元素为
12、13、14、15。
1、、、7;
1、、、9;
0、1、、、
若十六进
与机器相关性;执行的高效率性;编写程序的复杂性;调试程序的复杂性。
D=3000H,请指出下列各种寻址方式的有效地址是什么?
EA=D=3000H
EA=(BX)=1000H
EA=(BX)+D=1000H+3000H=4000H
EA=(BX)+(SI)=1000H+2000H=3000H
EA=(BX)+(SI)+D=1000H+2000H+3000H=6000H
17、设BX=1000H,SI=2000H,位移量
(1)
(2)
(3)
(4)
(5)
四、程序阅读题
1.有下列程序,试分析该程序,并在程序的后面写出该程序实现的功能。
DATA
使用D的直接寻址
使用BX寄存器的间接寻址使用BX寄存器的相对寻址基址变址寻址相对基址变址寻址
DATA
SEGMENT
SOURCEDB?
,?
MAXDB?
ENDS
;两个无符号数
SEGMENT
CODE
ASSUMECS:
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVAL,SOURCE
CMPAL,SOURCE+1JNCBRANCH
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.将下列程序补充完整(即在画线的地方填入相应的内容),使该程序实现如下的功能:
1
Y=2
3
X>0
X=0
X<0
-128≤X≤127
DATA
SEGMENT
XDB
YDB
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MOVAX,DATA
MOVDS,AX
MOVAL,X
AL,0
JGEBIGPTR
MOVY,3HLT
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
MOV
CX,COUNT/2
JCXZ
EXIT
LEA
BX,BUFF
AGAIN:
JGE
NEXT
MOV
AX,[BX]
NEXT:
ADD
BX,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
MOV
LEA
CX,6
BX,BUFF
AGAIN:
CMP
AX,[BX]
JLE
NEXT
MOV
AX,[BX]
NEXT:
ADD
BX,2
LOOPAGAIN
MOVX,AX
MOVAH,4CH
INT21H
CODE1ENDS
ENDSTART
请回答:
(1)指令JLE的功能
(2)上述程序段的功能是,上述程序段执行后,X等
于。
参考答案:
若小于或等于则转移,数组BUFF的最小值送X,-5
6.下面程序段使用1号DOS功能调用从键盘接受两个数字。
如该程序段执行时,从键盘输入‘2'和‘5',请问执行后,(AX)=,(BL)=。
MOVAH,01HINT21HMOVBL,ALMOVAH,01HINT21HXORAH,AHADDAL,BLAAAMOVBL,0JCEXITMOVBL,1
EXIT:
参考答案:
0007H,01H
7、设V、X、Y和Z都是有符号的字变量,下面程序段是实现运算公式:
(V-(X*Y+Z-540))/X,请在空格中填入应有的内容。
MOVAX,X
IMULY
MOVCX,AX
MOVBX,
MOVAX,ZCWD
ADDCX,AX
BX,DX
SUBCX,540
BX,0
MOVAX,VCWD
SUBAX,CXSBBDX,BX
参考答案:
DX,
ADC
SBB
IDIVX8、下面程序查找字符串STRING中是否有字母"B",有则AL=0;否则AL=-1,请将程序填写完整。
MOVES,SEGSTRING
LEA,STRING
MOVCX,20;假设字符串长度为20
CLDREPNZJZYES
NO:
MOVAL,-1
YES:
MOVAL,0EXIT:
......
参考答案:
DI
MOVAL,'B'
SCASB
JMPEXIT
9、下面程序,将source为首地址的100字节传送到dest存储区域(不重叠)。
请将程序填写完整。
datasegment
sourcedb100dup(a)
destdb100dup(
?
)
data
ends
codesegmentassumecs:
code,ds:
datastart:
movax,data
movds,ax
moves,ax
leasi,source
leadi,destmovcx,100repmov