2024年4月22日发(作者:)
第
4
章汇编语言程序设计
4-1
己知如下定义:
VAR DB
1
VAR2
DB
4
1
0
1
2
(2) MOV VARI, AX
(4) CNSTI EQU 24
试指出下列指令的错误原因:
(1) MOV CNST1, CX
(3) CMP VARI, VAR2
CNST
1
EQU
答:
(1)
目的操作数不能是立即数
(2) VARI
单元定义为字节类型,而
AX
为字
(3) 8086/8088
中两个内存单元操作数不能直接比较
(4)
同一符号名不允许用
EQU
重复定义
说明:注意
CNSTI
被赋值为常数,而
VARI
及
VAR2
为变量名。
4-2
某人定义了如下数据段:
DATA SEGMENT AT 1000H
ORG 100H
D11
B
D
H
33H
22H,
W
D
5
DUP (44H)
B
ENDS
VA
L1
VA
L2
VA
L3
DA
TA
试指明该数据段中偏移地址从
100H
到
109H
的各存储单元的内容。
答:各存储单元的内容如下:
100H:
101H:
102H:
103H:
104H:
105H:
106H:
107H:
108H:
109H:
11H
22H
00H
33H
00H
44H
44H
44H
44H
44H
说明:注意
ORG
定位伪指令规定了数据存放的起始偏移地址为
100H
。
4-3
对于下面的数据定义,写出其后的各条指令执行后的结果:
(1) MOV
(2) MOV
DATA
SEGMENT
O01 OOH
R
AAAA
DW
0A244H
BBBB
CCCC
DDDD
EEEE
DATA
AX, AAAA
BX, CCCC
DB
33H, 66H ,92H , 29H
EQU
WORD PTR BBBB
DB
'ABCD'
EQU $-DDDD
END
S
(3) MOV
(4) MOV
答.
(l)MOV
(2) MOV
D
X,
CL
,
OFFSET
EEEE
DDDD
AAAA
CCCC
.AL= (44H )
BH=
(66H)
DL= ( 06H )
CL= (04H)
A
X,
B
X,
D
⑶孔
10V
OFFSET
DDDD
X,
CL
⑷MOV
EEEE
,
说明:注意此题用
EQU
赋值伪指令对符号
CCCC
及
EEEE
定义了具体的值(常数),它们不是变量名。
一、习题
1.
选择题
4-1 8086
汇编语言源程序采用段结构,每个源程序…。
A.
至少要包含代码段、堆找段
B.
至少要包含代码段、数据段和堆找段
C.
至少要包含代码段、数据段
D.
必须要包含代码段
4-2 8086
汇编语言程序包含指令性语句和说明性语句(指示性语句),关于说明性语句,以下说法错
误的是…。
A.
说明性语句不包含
cpu
的指令
B
•说明性语句使用伪指令,也可以使用表达式
C
说明性语句不产生可执行代码,也不占用内存空间
D.
说明性语句可以包含注释
4-3
关于堆栈段,以下说法中正确的是…。
A.
定义了堆找段,
SP
指针会自动地设置
B.
如果源程序中没有定义堆栈段,就不可以使用堆栈
C.
如果源程序中没有定义堆栈段,系统会提供一个
64k
的堆栈段
D
如果源程序中没有定义堆栈段,汇编时会给出语法错误
4-4
为了节省内存,段和段之间是可以重叠的。重叠后的段,最小容量…。
A. 4KB
B. 1 KB
c. 512 B
D. 16B
4-5 ASSUME
伪指令是每个程序必须要用的。以下对
ASSUME
的使
正确的是 ___________ —
用,
A. ASSUME CS:CODE;
CS:CODE
DS:DATA;
DS:DATA
SS:STACK
B. ASSUME
C.
D.
ASSUME
ASSUME
CS:CODE, DS:CODE
CS:CODE; DS:DATA
4-6
汇编语言中可以使用字符和字符串。关于字符串,以下说法中正确的是.
A.
字符串是用双引号括起来的字符组合,用
DB
伪指令定义
B.
字符串是用单引号括起来的字符组合,用
DB
伪指令定义
C.
字符串是用单引号括起来的字符组合,以$结束,用
DB
伪指令定义
D
字符串是用单引号括起来的字符组合,以,
0
结束,用
DB
伪指令定义


发布评论