《汇编语言》复习题集 期末复习资料.docx
《《汇编语言》复习题集 期末复习资料.docx》由会员分享,可在线阅读,更多相关《《汇编语言》复习题集 期末复习资料.docx(23页珍藏版)》请在冰点文库上搜索。
《汇编语言》复习题集期末复习资料
《汇编语言》复习题集
(注意:
此习题集只限于同学们用来进行练习和检测,以便理解和掌握相关知识点。
请不要背题目记答案,否则一进考场,你一定会后悔的哦!
另外,版权所有,非授权不得公开)
一、选择题:
1.汇编语言源程序是指()
A:
系统提供的MASM
B:
用户编写的.ASM
C:
汇编生成的.OBJ
D:
连接生成的.EXE
2.汇编源程序出现语法错误的指令有()
A:
MOV[BX+SI],ALB:
MOVAX,[BP+DI]
C:
MOVDS,AXD:
MOVCS,AX
3.指令mov1000[di][bp],ax目标操作数的隐含段为()。
A:
数据段B:
堆栈段C:
代码段D:
附加段
4.MOVAX,ES:
[2000H]源操作数的寻址方式是:
()
A:
立即寻址 B:
直接寻址
C:
变址寻址 D:
基址寻址
5.指令movax,10[SI]的源操作数字段的寻址方式是()。
A:
寄存器寻址B:
寄存器间接寻址
C:
变址寻址D:
基址寻址
6.MOVAX,ES:
COUNT[DI]源操作数的寻址方式是:
()
A:
基址寻址 B:
立即寻址
C:
变址寻址 D:
基址变址寻址
7.MOVAX,[BP][DI]的源操作数的寻址方式是:
()
A:
变址寻址 B:
基址寻址
C:
直接寻址 D:
基址变址寻址
8.指令ADDCX,[DI+10H]中源操作数的寻址方式是()
A:
相对的变址寻址B:
基址寻址
C:
变址寻址D:
基址变址寻址
9.十进制数-100的8位二进制数的补码为()
A:
1100100
B:
10011101
C:
10011011
D:
10011100
10.下列四个寄存器中,哪个寄存器在程序设计中是不可省略的( )。
A:
CS B:
DS C:
ES D:
SS
11.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )。
.
A:
AX,BX,CX,DXB:
BP,SP,SI,DI
C:
SP,IP,BP,BXD:
BX,BP,SI,DI
12.8086∕8088CPU中可用作寄存器间址的寄存器是()。
A:
BX、SI、DIB:
BX、BP、SI、DI
C:
BX、IP、SI、DID:
BX,DX,SI,DI
13.指令MOVAX,COUNT[BX]完成的操作是()。
A:
从存储单元读出一个字送AX
B:
从存储单元读出一个字节送AX
C:
将AX中的一个字节写入存储单元
D:
讲AX中的一个字写入存储单元
14.不能用MOV指令赋初值的段寄存器是()
A:
ES
B:
SS
C:
CS
D:
DS
15.汇编语言中存储单元的属性不能是()
A:
双字DWORD型
B:
字WORD型
C:
字节BYTE型
D:
字符CHAR型
16.唯一代表存储空间中每个字节单元的地址是()
A:
段地址B:
偏移地址
C:
物理地址D:
有效地址
17.在DEBUG下,修改寄存器CS的命令是()
A:
UCS
B:
R
C:
ACS
D:
RCS
18.查看用户程序中数据段第18号存储单元的DEBUG命令是()
A:
DDS:
12
B:
DDS:
18
C:
DDS:
10010
D:
DDS:
13
19.下面哪一个命令是显示内存单元的内容?
()
A:
D命令 B:
E命令
C:
U命令 D:
R命令
20.能被计算机直接识别和执行的指令是:
()
A:
符号指令 B:
机器指令
C:
伪指令 D:
宏指令
21.若计算机字长16位,则无符号整数的范围用十六进制表示为()
A:
0000H~7FFFHB:
8000H~FFFFH
C:
0001H~FFFFHD:
0000H~FFFFH
22.已知(AX)=56H,(BX)=0ACH,(CX)=10AH执行下列程序后(AX)=()
PUSHAX
PUSHBX
PUSHCX
POPBX
POPAX
POPCX
A:
5600HB:
00ACHC:
0056HD:
010AH
23.顺序执行PUSHAX,PUSHBX和POPAX,POPBX两条指令,其功能等同于()
A:
MOVBX,AXB:
XCHGAX,BX
C:
MOVAX,BXD:
XCHGBL,AH和XCHGBH,AL
24.SP栈指针内容是1200H,执行两条PUSH指令,一条POP指令之后,SP的值是()
A:
11FCH
B:
11FEH
C:
1202H
D:
1204H
25.若栈顶的物理地址为20100H,当执行完指令PUSHAX后,栈顶的物理地址为()。
(A)20102H(B)20101H(C)200FFH(D)200FEH
26.用来表示堆栈指针的寄存器是().
A:
IPB:
BP
C:
SPD:
SS
27.在程序执行过程中,IP寄存器中始终保存的是()
A:
正在执行指令的首地址
B:
上一条指令的首地址
C:
需计算有效地址后才能确定地址
D:
下一条指令的首地址
28.指令MOVDX,[BX][SI]的源操作数保存在()
A:
数据段
B:
代码段
C:
堆栈段
D:
附加段
29.若(SI)=2300H,(BX)=1013H,(SS)=3593H,则SUBDX,[BP][SI]的有效地址(即偏移地址)是()
A:
3213HB:
3313H
C:
45A6HD:
1013H
30.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为:
()
A:
17500H B:
16500H
C:
14500H D:
13500H
31.指令MOVAX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为:
()
A:
17400H B:
17000H
C:
15400H D:
14500H
32.指令MOVDX,DELTA[BX][SI],若DELTA=1300H,SS=7200H,DS=5400H,BX=0500H,SI=4000H,那么物理地址为:
()
A:
6F300H B:
77800H
C:
59800H D:
78700H
33.指令MOVAX,ES:
[BX][SI]源操作数的物理地址是()
A:
SS×16+BX+SIB:
DS×16+BX+SI
C:
ES×16+BX+SID:
CS×16+BX+SI
34.设物理地址(20FF0H)=40H,(20FF1H)=50H,(20FF2H)=60H,从地址20FF1中取出一个字的内容是().
A:
5060H
B:
4050H
C:
6050H
D:
2050H
35.在机器内部操作中,CPU与存储器之间的任何信息交换使用的都是()
A:
物理地址
B:
相对地址
C:
逻辑地址
D:
有效地址
36.执行ORAL,80H后,可以肯定的执行结果是AL寄存器的()
A:
最高位为0B:
最高位为1
C:
低7位均为0D:
低7位均为1
37.将AL的2,6位屏蔽为0,其余保持不变的指令是()
A:
ORAL,26H
B:
ANDAL,0BBH
C:
ANDAL,42H
D:
ADDAL,0FBH
38.若DX=1010H,则ANDDX,DX的执行结果为()
A:
FFFFH
B:
0000H
C:
1111H
D:
1010H
39.关于字节乘法指令错误的说法是()
A:
乘积是字型,放在AX中B:
被乘数隐含在AL中
C:
乘数和被乘数都是字节型D:
被乘数隐含在AX中
40.若AX=2000H,CL=90H,则DIVCL执行后,AX=()
A:
8038H B:
8039H
C:
9138H D:
8138H
41.要实现段间转移,下列说法正确的是()
A:
标号的偏移地址送入CS
B:
标号的属性为NEAR型的
C:
转移地址不能用存储单元给出
D:
既要改变IP又要改变CS
42.有指令JMPSHORTNEXT,如果操作码放在地址0020H处,标号NEXT的地址是000CH,那么汇编后机器指令码是()
A:
EBEAB:
EB14
C:
EB0CD:
EB0A
43.有指令JMPSHORTS,如果操作码放在地址0006H处,标号S的地址是000BH,那么汇编后机器指令码是()
A:
EB03B:
EB05
C:
EB06D:
EB0B
44.JMPWORDPTR[DI]是()
A:
段间直接转移
B:
段内间接转移
C:
段内直接转移
D:
段间间接转移
45.如果一标号与访问它的JMP指令之间的相对位移量在-128~+127字节的范围内,则可将该标号说明为()转移
A:
FARB:
NEAR
C:
SHORTD:
MIDDLE
46.条件转移指令的转移范围:
()
A:
-128~+127B:
-32768~+32767
C:
0~+255D:
0~+65535
47.取变量偏移属性的分析运算符是:
()
A:
OFFSET B:
TYPE
C:
SIZE D:
SEG
48.DD50DUP(?
)语句预留了多少个字节存储空间()
A:
25B:
100
C:
50D:
200
49.累加器AL中的内容为74H,执行CMPAL,47H指令后,累加器AL中的内容为()
A:
2DH
B:
0D3H
C:
47H
D:
74H
50.在标识寄存器中表示溢出的标志是()
A:
SFB:
CF
C:
OFD:
AF
51.在80x86标志寄存器中,ZF=1表示()
A:
结果为负B:
结果有进位
C:
结果为0D:
结果溢出
52.若AX=1E30H,BX=12E4H,则ADDAL,BL的执行结果为AL=?
,CF=?
()
A:
14H,1
B:
24H,1
C:
14H,0
D:
24H,0
53.若BL=84H,CF=1,则ADCBL,90H执行后,BL=()
A:
14H
B:
15H
C:
16H
D:
17H
54.若AX=1020H,BX=1200H,CF=1,则SBBAX,BX的执行结果为:
()
A:
0EF1FH B:
0FEFFH
C:
0FE1FH D:
0FE21H
55.当执行指令”ADDAX,BX”后,设置的奇偶标志位PF=1,则下面的叙述正确的是()
A:
表示结果中含1的个数为偶数或0
B:
表示该数为偶数
C:
表示结果中含1的个数为奇数
D:
表示结果中低8位含1的个数为偶数或0
56.条件转移指令JNE的测试条件是()
A:
CF=0
B:
ZF=0
C:
CF=1
D:
ZF=1
57.条件转移指令JE的测试条件是()
A:
CF=0
B:
ZF=0
C:
CF=1
D:
ZF=1
58.两个操作数运算时,下列哪种结果会发生溢出()
A:
两个负数相加,结果为负
B:
一正一负相加,结果为负
C:
两个正数相加,结果为负
D:
两个正数相加,结果为正
59.如下程序段中的”DECCX”指令执行了几次()
MOVCX,4
JCXZNEXT
AGAIN:
DECCX
JNZAGAIN;指令JNE与JNZ等价,ZF=0,转至标号处执行
NEXT:
……
A:
4
B:
1
C:
5
D:
0
60.已知AX=1234H,执行下述三条指令后,AX等于()
MOVBX,AX
NEGBX;求补指令,功能:
用0减去目标操作数,结果返回原来的目标操作数。
ADDAX,BX
A:
6DCCH
B:
0000H
C:
1234H
D:
0EDCCH
61.当执行指令”ADDAX,BX”后,设置的奇偶标志位PF=1,则下面的叙述正确的是()
A:
表示结果中含1的个数为偶数或0
B:
表示该数为偶数
C:
表示结果中含1的个数为奇数
D:
表示结果中低8位含1的个数为偶数或0
62.下列四条指令执行后不影响标志位CF的是()
A:
ADDAX,1
B:
CMPAX,BX
C:
INCAX
D:
ORAL,AL
63.当执行完下列两条指令后,标志位CF和SF的值为( )。
MOV AL,0C4H
ADD AL,9DH
A:
0,0 B:
1,1 C:
0,1 D:
1,0
64.在执行MOVSW指令时,CPU自动修改SI、DI以指向下一位置,其修改量△为(),调整方向由DF标志位控制。
在DF为( )时,SI、DI减去△。
A:
0 B:
1 C:
2 D:
4
65.在MOVSB指令中,其源串的物理地址为:
()
A:
DS*16+SIB:
DS*16+DI
C:
ES*16+SID:
ES*16+DI
66.在MOVSB指令中,其目的串的物理地址为:
()
A:
DS*16+SIB:
DS*16+DI
C:
ES*16+SID:
ES*16+DI
67.要使串处理从低地址向高地址进行,应把标志位置为()
A:
IF=1B:
TF=0
C:
DF=1D:
DF=0
68.中断向量是指( )。
(A)中断向量表的地址 (B)中断处理子程序的入口地址
(C)被中断程序的入口地址 (D)被中断程序的断点地址
二、填空题:
1.能够将汇编指令转换成机器指令的翻译程序,我们称其为。
2.一个CPU的寻址能力为16KB,那么它的地址总线宽度为。
3.一个CPU的寻址能力为4GB,那么它的地址总线宽度为。
4.在存储器中,数据和程序都是以形式存放的。
5.有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元,则SA应满足的条件是:
最小为,最大为。
6.在8086/8088系统中,存储器是分段的,每段最大长度是____字节,段内偏移地址从______到_____。
7.在8086/8088CPU中,有许多寄存器,他们是通用寄存器:
(ax)(bx)(cx)(dx);指针和变址寄存器:
(sp)(bp)(si)(di);段寄存器:
(cs)(ds)(ss)(es);指令指针:
(ip)还有一个标志寄存器:
(flags),他们都是(16)位的。
8.在8086CPU中,有4个专门存放段地址的寄存器,称为段寄存器,请写出以下段寄存器的符号:
代码段寄存器:
(cs)数据段寄存器:
(ds)
堆栈段寄存器:
(ss)附加段寄存器:
(es)
9.CPU与外设间交换的信息有三种,它们是数据信息、控制信息和_______地址信息_____,这三种信息都是通过CPU的_____________________总线来传送的。
10.8086CPU通过________寄存器和______寄存器能准确找到指令代码。
11.完成一个汇编语言程序的编制调试,通常需经过四个步骤:
首先用编辑程序编出用户的源程序,然后通过运行汇编程序获得
程序(文件),接着运行连接装配程序,产生_____程序(文件),最后通常使用程序调试运行程序。
12.用二进制代码组成的计算机能直接识别的语言称为机器语言。
用机器指令的助记符以及伪指令,宏指令表示的一种面向机器的语言称汇编语言,用该语言编写的程序需经过汇编程序翻译,成为计算机能直接识别并执行的程序称目标程序。
13.汇编语言源程序的扩展名是__.ASM____。
14.汇编语言目标程序的扩展名是_.OBJ_____。
15.汇编语言源程序不一定包含数据段、堆栈段,但必须包含。
16.每个段都以符号___SEGMENT___作为段的开始,以语句___ENDS___作为段的结束。
17.伪指令“END标号”中的“标号”指明了程序的_____。
18.循环结构的程序通常由初值,设置循环体和循环控制三部分组成。
19.指令MOVAX,[BX+SI+10H]源操作数寻址方式是。
20.假设(SP)=0100H,(SS)=2000H,执行PUSHBP指令后,栈顶的物理地址是_______.
21.设(AX)=AACCH,(BX)=1122H,执行如下指令后:
PUSHA
PUSHB
POPA
POPB
试回答:
①(AX)=,(BX)=
②执行前SP=100H,执行后SP=
22.已知AX=FF60H,执行下述指令
MOVDX,96H
XORDH,0FFH;XOR指令的功能:
实现两个操作数按位‘异或’运算,结果送至目的操作数中.(异或:
相异为真,相同为假.)
SBBAX,DX
后,AX=,CF=.
MOVAX,[BP]的源操作数的物理地址为。
23.在汇编语言中,一个标号和过程有NEAR和FAR两种属性。
NEAR属性表明在转移和调用,FAR属性表示在转移和调用。
24.段属性就是定义标号的段起始地址,标号的段总是在______寄存器中,偏移属性就是定义标号的偏移地址,它应安排在_____寄存器中。
25.判断无符号数运算是否溢出,应根据标志位;而判断有符号数运算是否溢出,应根据标志位。
26.指令操作数可以存放在指令中,也可以存放在CPU的寄存器中,大多数存放在存储器中,它们分别被称为、和
寻址方式。
27.调用程序与子程序之间的参数传递方法有三种,即堆栈法、寄存器法、存储单元。
28.用DW1234H语句定义的一个字,如改用DB定义时,其语句是。
29.在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是。
30.将AX中第4,5位清0的指令是ANDAX,0FFCFH;将AX的低四位取反的指令是XORAX,0FH
31.写出下列程序段执行后AX的结果:
MOVAX,6262H;
ANDAL,0FH;AX=H
ADDAL,30H;AX=H
ORAH,30H;AX=H
ORAH,F0H;AX=H
32.设寄存器AL、BL、CL中内容均为76H,执行下述指令
XORAL,0FH;
ANDBL,0FH
ORCL,0FH
后,AL=______、BL=______,CL=______。
33.当执行MULBX指令后,乘积的结果在()中,其中一个乘数默认在()中,另一个乘数在()中。
当执行DIVBX指令后,被除数在()中,所得商在()中,余数在()中。
34.用一条语句实现AX的内容加1,要求不影响CF。
()。
35.已知AX=0A33AH,DX=0F0F0H,执行下述指令
ANDAH,DL
XORAL,DH
NEGAH;NEG指令是求补运算,操作功能是用0减去目标操作数,结果送回原来的操作数。
例:
(AL)=44H,取补后,(AL)=0BCH(-44H)。
NOTAL;完成对操作数按位求反运算(即0变1,1变0),结果返回原操作数.
后,AH=60H,AL=35H
36.在程序中执行MOVBX,[BP+2]指令前,下列寄存器状态为:
BP=0200H,CS=1000H,DS=2000H,SS=2300H,内存地址中数据如右表所示,指令执行后各寄存器数据为:
BX=,BP=。
37.是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。
38.从内存地址0000H:
0048H开始的连续4个单元中存放的内容为00H、38H,30H、50H,则该地址对应的中断类型码为_____________________,该中断对应的中断服务程序的入口地址为_____________________。
三、简答题:
1.简述汇编语言源程序,经汇编连接后产生的程序在执行后正常返回DOS的两种方法。
2.简述上机运行汇编语言程序的过程。
3.段内调用和段间调用的异同点是什么?
4.串处理指令有什么特殊规定?
5.指出CALL指令与JMP指令的异同?
6.在寄存器间接寻址方式中,如果指令中没有具体指明段寄存器,段寄存器如何确定?
如果要用某个段寄存器指出段地址,指令应如何表示?
7.指出下列MOV指令的源操作数的寻址方式。
MOVAX,1234H=立即
MOVAX,[BX]=寄存器间接
MOVAX,TABLE;TABLE是一个变量名。
=直接
MOVAX,[1234H]=直接
MOVAX,[BX+1234H]=基址
MOVAX,[BP][SI]=基址变址
MOVAX,[BX+SI-1234H]=基址变址
8.设(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,(SI)=0002H。
求下列每条指令源操作数的存储单元地址。
MOVAX,[1234H]
MOVAX,[BX]
MOVAX,2000AH[BX]
MOVAX,[BP]
MOVAX,[BP][SI]
9.自内存0F00:
0006开始的内存单元中存放着8032569876B5这六个十六进制数据,试分别写出0F00:
0008的字节型数据,字型数据、双字型数据的值。
字节型:
(56)
字型:
(9856)
双字型:
(B5769856)
10.已知:
BX=1100H,BP=2312H,SI=1987H,DS=2000H,SS=0468H,CS=4B00H,指出下述指令中存储器操作数的有效地址和实际地址。
有效地址
实际地址
①MOVAL,[BX]
②MOVAH,[BP]
③MOVBH,CS:
[SI]
④MOVDL,[SI+10H]
⑤MOVCH,[BP+20H]
⑥MOVCL,SS:
[SI+50H]
⑦MOVBL,DS:
[BP+30H]
⑧MOV[BP+SI+30H],AH
⑨MOV[BX+SI-40H],AH
⑩MOVCS:
[BX+SI],DH
11.若(SS)=2000H,(SP)=000AH,先执行将字数据1234H和5678H压入堆栈的操作,再执行弹出一个字数据的操作,试画出堆