广东海洋大学汇编语言复习题目答案Word文档下载推荐.docx
《广东海洋大学汇编语言复习题目答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《广东海洋大学汇编语言复习题目答案Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
地址计数器:
$
重复:
DUP
结束:
END
属性操作符:
PTR
8、算术指令的执行影响标志寄存器中的条件标志位(CF、OF)
9、循环与分支程序结构
10、子程序结构
11、宏指令定义
12、中断源、中断向量表与中断向量的关系
13、用IN和OUT指令直接控制硬件
14、键盘、CMOS时钟、显示器的工作原理
15、常用DOS中断(INT21H的1、2、9、10号功能调用)
16、常用的BIOS中断(INT16H的0号功能,INT
10H的2、3、6、7、9号功能)
重点掌握的程序:
二、十、十六进制相互转换的程序
BCD码转换为十进制的程序
发声程序
大小写字母相互转换的程序
进行累加求和的程序
例题5.1
5.3
5.4
5.5
习题
5.21
5.26
例题6.3
6.4
6.9
6.5
6.7
例题7.1
7.1
例题8.1
8.5
8.1
8.3
8.9
8.11
例题9.5
9.7
9.11
9.14
习题9.3
9.4
9.5
9.6
9.10
汇编语言复习题
一、选择题
1.下面关于汇编语言源程序的说法中正确的是(
B
)
A.必须要有堆栈段
B.一个程序可以有多个代码段
C.必须要有数据段
D.只能有一个数据段
2.在汇编语言程序开发中,一般要按顺序经过(
B)过程。
a.用文字编辑程序编写源程序
b.用连接程序LINK连接程序
.ASM—>
.OBJ-->
.EXE
c.用MASM宏汇编程序,编译成目标程序
d.用DEBUG程序调试程序
A.abcd
B.acbd
C.adcb
D.adbc
3.汇编语言编译程序MASM.EXE(编译器)编译的对象是(C
)文件。
A.
.EXE
B.
.OBJ
C.
.ASM
D.
.DOC
4.汇编语言源程序经过MASM汇编后产生(C
.EXE B.
D.
5.
DEBUG调试程序时查看内存单元内容的命令是(
A)
A.D
B.R
C.A
D.E
6.
DEBUG调试程序时查看寄存器内容的命令是(
B)
C.U
D.A
7.8086CPU地址总线宽度为(
C)位。
A、8
B、16
C、20
D、32
8.
8086CPU数据总线宽度为(B
)位。
9.
1个CPU的寻址能力为32KB,那么它的地址总线宽度为(
)。
A、13
B、15
C、18
D、32k
10.汇编语言源程序中定义段的伪指令是(
D
A.REPT…ENDM
B.PROC…ENDP
C.MACRO…ENDM
D.SEGMENT…ENDS
11.汇编语言源程序中定义宏的伪指令是(
C
12..对于下列程序段:
AGAIN:
MOV
AL,[SI]
ES:
[DI],AL
INC
SI
DI
LOOP
AGAIN
把[sI]中的内容传送给ES:
[DI]
也可用(
A
)指令完成同样的功能。
REP
MOVSB
串传送
LODSB
从串取
C.
STOSB
存入串
REPE
SCASB
串扫描
13.设SP初值为2000H,执行指令“PUSH
AX”后,SP的值是(
A.1998H
B.1FFFH
1FFEH
D.2002H
14.设SP初值为2000H,执行指令“POP
BX”后,SP的值是(
D
15.执行下列指令序列后,正确的结果是(A
MOV
AL,81H
al=81h
ADD
AL,AL
al=81h+81h=02h
cf=1
ADC
02h+02h+cf=05h
A.
AL=05H
AL=204H
C.AL=04H
AL=205H
16.下列指令被编译时会出错的是(
)mul的操作数不能为立即数
A.MUL
BX
B.MUL
CL
C.MUL
DAT1
D.MUL
56
17.与MOV
BX,OFFSETVAR指令完全等效的指令是(
B
A、MOV
BX,VAR
B、LEA
BX,VAR
C、LDS
D、MOV
BX,SEG
VAR
18.
指令指针寄存器是(
BP
SP
IP
PSW
19.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(
A.AX,BX,CX,DX
B.BX,BP,SI,DI
C.SP,IP,BP,DX
D.CS,DS,ES,SS
20.
下列数据段中:
BUF1
3
DUP(0,2
DUP(1,2),3)
COUNT
EQU
$-BUF1
符号COUNT等价的值是(
A.6
18
16
8
占用了18个字节,其中2
DUP(1,2)占用了2*2=4个字节,总共占用了
3*6=18个字节
21.设数据段中已有:
DA1
12H,34H
DA2
56H,78H
下面有语法错误的语句是(
AL,
WORDPTR
DA1,AX
DA1+1,AX
BYTEPTR
DA2+1,AL
22.指令MOV
BYTE
PTR
[BX+SI],00H中目的操作数的寻址方式是(
d)
A.立即寻址
B.寄存器寻址
C.寄存器间接寻址
D.基址变址寻址
23.指令MOV
ES:
[BX],AL
中目的操作数的寻址方式是(c
A.直接寻址
24.条件转移指令JB产生程序转移的条件是(
CF=1
B.CF=0
C.CF=1和ZF=1
D.CF=1和ZF=0
25、若执行SAL
SI,CL后能将SI的内容乘以8,则(CL)=(
A、2
B、3
C、4
D、8
26.编辑汇编语言源程序时,对于注释语句必须用英文输入法中的(
)来标示。
:
;
.
27.将AL高4位清0,应执行的指令是
(
AND
AL,0F0H
AL,0FH
AL,0FH
28.若程序中定义了26B的数据段data,那么程序载入内存,该data段实际占用的内存空间是(
C
16的倍数
A、
16B
B、26B
C、
32B
D、
64KB
29.在8086CPU系统中一个段的容量最小为(
A
A、16B
B、64KB
C、512KB
D、1KB
有数据时最小为16B,没数据时最小为0
30.下列地址信息与0020H:
03EFH确定的内存地址不同的是(
A、5EFH
B、203H:
00EFH
C、005EH:
000FH
D、0002H:
05CFH
ACD对应的物理地址都是5EFH
二、填空题
1、完成下列数制转换:
11101010B=
D=
H
2.在存储器分段管理中,物理地址需要____2_______个16位寄存器来存储。
3.对于指令FEES
100DUP(0)
LENGTH=
100
,SIZE=
200B
。
4.设DS=2000H,BX=1256H,变量TABLE的偏移地址为20A1H,(232F7H)=3280H.下列指令分别执行后,IP的值各是多少?
(1)JMP
IP=______1256h_____________
(2)JMP
TABLE[BX]
IP________3280H_____________
5.设(DS)=2000H,有下列数据段,请用十六进制写出下列各字节单元的内容:
ORG
2100H
想知道org是什么?
XX一下
TABLE
10,3*5,10H
占三个字节
ADDRESS
DD
TABLE
DD占四个字节,地址为2000h:
2100h
ARRAY
2
DUP(3827H,?
)
占4个字,8个字节
(1)(2100H)=____10_________
(2)(2103H)=
_____00_________
(3)(2106H)=____20H__________
(4)(210CH)=
_____38H_________
这里的DS=14F8H,(2106H)=14
题目DS=2000H,所以(2106H)=20
6.已知X=-38D,Y=-64D,则[X-Y]补=____1AH_______(结果用十六进制表示)
7、设(DS)=2000H,(ES)=3000H,(SS)=4000H,(BX)=1000H,(BP)=1000H,(SI)=0001H,(DI)=0002H,(21000H)=1234H,(21002H)=5678H,(31000H)=9ABCH,(31002H)=0DEF0H,(41000H)=3456H,(41002H)=789AH
计算下列各指令中源操作数的物理地址,并指出指令执行后AX寄存器的内容。
(1)
AX,
[1000H]
物理地址PA=
(2)
AX,[BP]
物理地址PA=
(3)
[BX][SI]
物理地址PA=
(AX)=
8.计算机中8位二进制有符号数(含一位符号位)的补码表示范围是—128~127
9.若机器进行有符号数运算,执行指令:
AL,0F0H
AL,78H
则ADD指令执行后:
(CF)=
1
,(OF)=
0
想知道结果也可以调试一下看看
10.8086CPU允许有
256
个中断源,其中定时器中断的中断类型号为
08H
,在中断向量表中N类型对应中断向量的地址为
N×
4
三、判断下列指令的正误
1、MUL
AL,BL
(N
)只有一个操作数
2、MOV
CS,
(n
3、PUSH
AL
(N)
PUSH和POP操作都是以字为单位
4、SHL
AX,CX
以为次数要放在cl中
5、MOV
AH,BYTEPTR[SI][DI]
(N)[SI][DI]两个都为变址寄存器
6、OUT
03FCH,AX
(
N
03FCH超过了255,必须用间接寻址,这里间接寻址的寄存器要用DX,
Movdx,03fch
Outdx,ax
7、SUB
AX,[BX]
y
8、AND
0FH
9、MOV
[SI],[DI]
n
)两个操作数不能同时为存储器
10、MOV
[BX],
0FFH
11、MUL
0AH
12、CALL
FAR
S
13、ADD
DS,
AX
)段寄存器不可以用在算术指令中
14、ADD
AL,100H
)类型不一致
15、MOV
16、INT
1000H
17、JMP
SHORT
18、0R
0FFFH
19、CALL
20、IN
03H,AX
)
四、程序分析题
1.
阅读下面程序段,回答问题。
DB
0F8H
DUP(?
)
┇
LEA
DI,B
CX,3
AL,A
LOP:
SAR
AL,1
[DI],AL
DI
LOP
上述程序段运行后,从B单元开始依次存放的数据是多少?
FC FE
FF
F8H=11111000
右移一位变为11111100=FC
再右移一位变为11111110=FE
再右移一位变为11111111=FF
调试结果:
2、分析下面程序段的功能
……
DATA
SEGMENT
S9
0,1,2,3,4,5,6,7,8,9
ENDS
┇
SI,S9
DI,S9+1
CX,5
AL,[SI]
XCHG
AL,[DI]
[SI],AL
ADD
SI,2
DI,2
LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么?
01
00
03
02
05
04
07
06
09
08
3、已知BUF开始的数据区中存放有10个大、小写字母,分析下面程序段完成的功能是什么?
……
CX,10
BX,BUF
K2:
MOV
AL,[BX]
CMP
AL,‘Z’
K1
AL,20H
(20H=32,大小写字母相差32)
[BX],AL
K1:
BX
K2
实现功能:
把小写字母变为大写字母
4.分析下面程序段完成的功能是什么?
……
(DX:
AX)联合存放了一个32位数据
CL,4
SHL
DX,CL
DL=****0000
BL,AH
AX,CL
AL=****0000
SHR
BL,CL
BL即AH的内容,AH=0000****,四个星号为原来AX的高四位
OR
DL,BL
功能:
把ax的高四位写入到dx的低四位
5、分析下面程序段完成的功能是什么?
LOP1:
AH,1
21H
LOP1
LOP2:
POP
DX
AH,2
LOP2
把输入的字符逆向输出
6、以下是二进制数(bx)到十六进制数转换并显示程序的源文件BINIHEX.ASM,阅读并完成该程序。
……
START:
CH,4
bx为16位,bx要循环4次,用ch来计次数
ROTATE:
mov
cl,4
BX,CL
AL,BL
bx循环左移后,原来的高四位变为低四位,把bl的
值送给al,以免后面的操作影响bx的值
And
al,0fh
与0fh相与,只保留低四位
AL,30H
转换为ASII码
AL,3AH
ASII码大于3Ah则al的值大于9,若小于3Ah,直接输出
PRINTIT
Add
al,07h
ASII码大于3Ah,A的ASII码为41h,所以要加上7,可以输出相应的ABCD....
PRINTIT:
DL,AL
Mov
ah,02h
Dec
ch
JNZ
ROTATE
ch为零时跳出循环
AH,4CH
INT
7、以下是子程序BCDIASC,请阅读程序并完成填空。
;
将十进制的两位数的BCD码转换为ASCII码并在屏幕中间显示.
参数:
(AL)=十进制的两位数的BCD码,无出口参数
BCDIASC:
AH,AL
CL,4
shr
ah,
cl
将AH的高4位移至低4位
al,
0fh
保留AL的低4位