《汇编语言》复习题集 期末复习资料文档格式.docx
《《汇编语言》复习题集 期末复习资料文档格式.docx》由会员分享,可在线阅读,更多相关《《汇编语言》复习题集 期末复习资料文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
10011101
10011011
10011100
10.下列四个寄存器中,哪个寄存器在程序设计中是不可省略的(
)。
CS
B:
DS
ES
D:
SS
11.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(
)。
.
AX,BX,CX,DXB:
BP,SP,SI,DI
SP,IP,BP,BXD:
BX,BP,SI,DI
12.8086∕8088CPU中可用作寄存器间址的寄存器是()。
BX、SI、DIB:
BX、BP、SI、DI
BX、IP、SI、DID:
BX,DX,SI,DI
13.指令MOVAX,COUNT[BX]完成的操作是()。
从存储单元读出一个字送AX
从存储单元读出一个字节送AX
将AX中的一个字节写入存储单元
讲AX中的一个字写入存储单元
14.不能用MOV指令赋初值的段寄存器是()
ES
CS
DS
15.汇编语言中存储单元的属性不能是()
双字DWORD型
字WORD型
字节BYTE型
字符CHAR型
16.唯一代表存储空间中每个字节单元的地址是()
段地址B:
偏移地址
物理地址D:
有效地址
17.在DEBUG下,修改寄存器CS的命令是()
UCS
R
ACS
RCS
18.查看用户程序中数据段第18号存储单元的DEBUG命令是()
DDS:
12
DDS:
18
10010
13
19.下面哪一个命令是显示内存单元的内容?
D命令 B:
E命令
U命令 D:
R命令
20.能被计算机直接识别和执行的指令是:
符号指令 B:
机器指令
伪指令 D:
宏指令
21.若计算机字长16位,则无符号整数的范围用十六进制表示为()
0000H~7FFFHB:
8000H~FFFFH
0001H~FFFFHD:
0000H~FFFFH
22.已知(AX)=56H,(BX)=0ACH,(CX)=10AH执行下列程序后(AX)=()
PUSHAX
PUSHBX
PUSHCX
POPBX
POPAX
POPCX
5600HB:
00ACHC:
0056HD:
010AH
23.顺序执行PUSHAX,PUSHBX和POPAX,POPBX两条指令,其功能等同于()
MOVBX,AXB:
XCHGAX,BX
MOVAX,BXD:
XCHGBL,AH和XCHGBH,AL
24.SP栈指针内容是1200H,执行两条PUSH指令,一条POP指令之后,SP的值是()
11FCH
11FEH
1202H
1204H
25.若栈顶的物理地址为20100H,当执行完指令PUSHAX后,栈顶的物理地址为()。
(A)20102H(B)20101H(C)200FFH(D)200FEH
26.用来表示堆栈指针的寄存器是().
IPB:
BP
SPD:
27.在程序执行过程中,IP寄存器中始终保存的是()
正在执行指令的首地址
上一条指令的首地址
需计算有效地址后才能确定地址
下一条指令的首地址
28.指令MOVDX,[BX][SI]的源操作数保存在()
数据段
代码段
堆栈段
29.若(SI)=2300H,(BX)=1013H,(SS)=3593H,则SUBDX,[BP][SI]的有效地址(即偏移地址)是()
3213HB:
3313H
45A6HD:
1013H
30.指令MOVBX,MASK[BP],若MASK=3500H,SS=1200H,DS=1000H,BP=1000H,那么物理地址为:
()
17500H B:
16500H
14500H D:
13500H
31.指令MOVAX,COUNT[BX],若COUNT=0400H,SS=1200H,DS=1000H,BX=5000H,那么物理地址为:
17400H B:
17000H
15400H D:
14500H
32.指令MOVDX,DELTA[BX][SI],若DELTA=1300H,SS=7200H,DS=5400H,BX=0500H,SI=4000H,那么物理地址为:
()
6F300H B:
77800H
59800H D:
78700H
33.指令MOVAX,ES:
[BX][SI]源操作数的物理地址是()
SS×
16+BX+SIB:
DS×
16+BX+SI
ES×
16+BX+SID:
CS×
16+BX+SI
34.设物理地址(20FF0H)=40H,(20FF1H)=50H,(20FF2H)=60H,从地址20FF1中取出一个字的内容是().
5060H
4050H
6050H
2050H
35.在机器内部操作中,CPU与存储器之间的任何信息交换使用的都是()
物理地址
相对地址
逻辑地址
36.执行ORAL,80H后,可以肯定的执行结果是AL寄存器的()
最高位为0B:
最高位为1
低7位均为0D:
低7位均为1
37.将AL的2,6位屏蔽为0,其余保持不变的指令是()
ORAL,26H
ANDAL,0BBH
ANDAL,42H
ADDAL,0FBH
38.若DX=1010H,则ANDDX,DX的执行结果为()
FFFFH
0000H
1111H
1010H
39.关于字节乘法指令错误的说法是()
乘积是字型,放在AX中B:
被乘数隐含在AL中
乘数和被乘数都是字节型D:
被乘数隐含在AX中
40.若AX=2000H,CL=90H,则DIVCL执行后,AX=()
8038H B:
8039H
9138H D:
8138H
41.要实现段间转移,下列说法正确的是()
标号的偏移地址送入CS
标号的属性为NEAR型的
转移地址不能用存储单元给出
既要改变IP又要改变CS
42.有指令JMPSHORTNEXT,如果操作码放在地址0020H处,标号NEXT的地址是000CH,那么汇编后机器指令码是()
EBEAB:
EB14
EB0CD:
EB0A
43.有指令JMPSHORTS,如果操作码放在地址0006H处,标号S的地址是000BH,那么汇编后机器指令码是()
EB03B:
EB05
EB06D:
EB0B
44.JMPWORDPTR[DI]是()
段间直接转移
段内间接转移
段内直接转移
段间间接转移
45.如果一标号与访问它的JMP指令之间的相对位移量在-128~+127字节的范围内,则可将该标号说明为()转移
FARB:
NEAR
SHORTD:
MIDDLE
46.条件转移指令的转移范围:
-128~+127B:
-32768~+32767
0~+255D:
0~+65535
47.取变量偏移属性的分析运算符是:
OFFSET B:
TYPE
SIZE D:
SEG
48.DD50DUP(?
)语句预留了多少个字节存储空间()
25B:
100
50D:
200
49.累加器AL中的内容为74H,执行CMPAL,47H指令后,累加器AL中的内容为()
2DH
0D3H
47H
74H
50.在标识寄存器中表示溢出的标志是()
SFB:
CF
OFD:
AF
51.在80x86标志寄存器中,ZF=1表示()
结果为负B:
结果有进位
结果为0D:
结果溢出
52.若AX=1E30H,BX=12E4H,则ADDAL,BL的执行结果为AL=?
,CF=?
14H,1
24H,1
14H,0
24H,0
53.若BL=84H,CF=1,则ADCBL,90H执行后,BL=()
14H
15H
16H
17H
54.若AX=1020H,BX=1200H,CF=1,则SBBAX,BX的执行结果为:
0EF1FH B:
0FEFFH
0FE1FH D:
0FE21H
55.当执行指令”ADDAX,BX”后,设置的奇偶标志位PF=1,则下面的叙述正确的是()
表示结果中含1的个数为偶数或0
表示该数为偶数
表示结果中含1的个数为奇数
表示结果中低8位含1的个数为偶数或0
56.条件转移指令JNE的测试条件是()
CF=0
ZF=0
CF=1
ZF=1
57.条件转移指令JE的测试条件是()
58.两个操作数运算时,下列哪种结果会发生溢出()
两个负数相加,结果为负
一正一负相加,结果为负
两个正数相加,结果为负
两个正数相加,结果为正
59.如下程序段中的”DECCX”指令执行了几次()
MOVCX,4
JCXZNEXT
AGAIN:
DECCX
JNZAGAIN;
指令JNE与JNZ等价,ZF=0,转至标号处执行
NEXT:
……
4
1
5
60.已知AX=1234H,执行下述三条指令后,AX等于()
MOVBX,AX
NEGBX;
求补指令,功能:
用0减去目标操作数,结果返回原来的目标操作数。
ADDAX,BX
6DCCH
1234H
0EDCCH
61.当执行指令”ADDAX,BX”后,设置的奇偶标志位PF=1,则下面的叙述正确的是()
62.下列四条指令执行后不影响标志位CF的是()
ADDAX,1
CMPAX,BX
INCAX
ORAL,AL
63.当执行完下列两条指令后,标志位CF和SF的值为(
)。
MOV
AL,0C4H
ADD
AL,9DH
0,0
1,1
0,1
1,0
64.在执行MOVSW指令时,CPU自动修改SI、DI以指向下一位置,其修改量△为(),调整方向由DF标志位控制。
在DF为(
)时,SI、DI减去△。
0
1
2
65.在MOVSB指令中,其源串的物理地址为:
DS*16+SIB:
DS*16+DI
ES*16+SID:
ES*16+DI
66.在MOVSB指令中,其目的串的物理地址为:
67.要使串处理从低地址向高地址进行,应把标志位置为()
IF=1B:
TF=0
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;
ORAH,30H;
AX=H
ORAH,F0H;
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压入堆栈的操作,再执行弹出一个字数据的操作,试画出堆