习题
一、选择题
1.下列描述正确的是_______。
A.汇编语言源程序可直接运行
B.汇编语言属于低级语言
C.汇编程序是用汇编语言编写的程序,运行速度高,阅读方便,属于面向用户的程序语言。
D.汇编语言可以移植
答案:B
2. 分析下面的程序,变量VAR2的偏移地址是______。
DATA SEGMENT
ORG 2
VAR1 DB 2,3,4
ORG $+3
VAR2 DW 1234H
DATA ENDS
A.02H B.04H C.05H D.08H
答案:D
3.为了使MOV AX, VAR指令执行后,AX寄存器中的内容为4142H,下面哪一种数据定义会产生不正确的结果?
A.VAR DW 4142H B.VAR DW 16706 C.VAR DB 42H, 41H D.VAR DW ‘AB’
答案:C
4.下列伪指令中______是正确的。
A.ERR1:DW 99 B.ERR2 DB 25*60 C.COUNT EQU 20 D.ONE DB ONE
答案:C
5.执行下列指令后,寄存器CL的值是_______。
STR1 DW ‘AB’
STR2 DB 16 DUP(?)
CNT EQU $-STR1
MOV CX, CNT
MOV AX, STR1
HLT
A.10H B.12H C.0EH D.0FH
答案:B
二、填空题
1.汇编语言的调试过程如下:建立以______为扩展名的源文件;生成以______为扩展名的目标文件;生成以______为扩展名的可执行文件;使用DEBUG调试程序,调试可执行目标程序。
答案:.asm .obj .exe
2.执行下列指令后,(AX)=______,(BL)=_______。
A DW ‘EF’
B DB ‘ABCDEF’
MOV AX, A
MOV BL, B[3]
HLT
答案:4546H 44H
3.执行下面程序段后,AL中的内容是______。
BUF DW 1234H, 5678H, 0001H
MOV BX, OFFSET BUF
MOV AL, 2
XLAT
答案:78H
4.若符号定义语句如下,则L=_______。
BUF1 DB 1, 2, ‘12’
BUF2 DB 0
L EQU BUF2-BUF1
答案:4
5.执行下列程序段后,BX寄存器间址单元的内容是______。
ORG 1FFFH
DB 4FH, 50H, 51H
MOV BX, 1FFFH
INC [BX]
INC BX
DEC [BX]
答案:4FH
6.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容:
TABLE1 DB ?
TABLE2 DW 20 DUP(?)
TABLE3 DB ‘ABCD’
......
MOV AX, TYPE TABLE1; (AX)=___
MOV BX, TYPE TABLE2; (BX)=____
MOV CX, LENGTH TABLE2; (CX)=_____
MOV DX, SIZE TABLE2 ; (DX)=_____
MOV SI, LENGTH TABLE3; (SI)=_______
答案:1 2 20 40 1
7.下面是多字节加法程序,第一个数是8A0BH,第二个数是D705H。请填写出正确结果。
DATA SEGNEBT
FIRST DB _____, _____, 0H
SECOND DB _____,______
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS: DATA
START: MOV AX, DATA
MOV DS, AX
MOV CX, _____
MOV SI, 0
汇编table指令什么意思 _________
NEXT: MOV AL, SECOND[SI]
ADC FIRST[SI], AL
INC SI
LOOP NEXT
MOV AL, 0
ADC AL, ______
MOV FIRST[SI], AL
MOV AH, 4CH
INT 21H
CODE ENDS
END START
答案:0BH 8AH 05H D7H 2 CLC 0
8.下面程序的功能是求有符号数中绝对值最小的数,并将最小绝对值存放在DAT2字节中,填空使程序正确实现此功能。程序执行后,DAT2单元中的内容是______。
DATA SEGMENT
DAT1 DB 65H, 88H, 20H, 0F6H
N EQU $-DAT1
DAT2 DB ?
DATA ENDS
CODE SEGMENT
_________________
START: MOV AX, DATA
__________
LEA SI, DAT1
MOV CX, N-1
MOV AL, [SI]
TEST AL, 80H
JZ LP0
NEG AL
LP0: MOV DAT2, AL
LP1: _________
MOV BL, [SI]
TEST BL, 80H
JZ LP2
NEG BL
LP2: ________
JB LP3
MOV DAT2, BL
MOV AL, BL
LP3: ________
MOV AH, 4CH
INT 21H
CODE ENDS
END START
答案:
ASSUME DS:DATA, SS:STACK, CS:CODE
MOV DS, AX
INC SI
CMP DAT2, BL
LOOP LP1
DAT2单元中的内容:0AH
9.填空说明在下列程序段执行过程中相应寄存器中的值。假设程序执行前DS=3000H,SS=2000H,SP=3000H,AX=4567H,BX=1234H,CX=6789H。
AND BX, 00FFH
CALL MYSUB
NOP ;SP=________
;AX=_______
;BX=_______
HLT
MYSUB PROC
PUSH AX
PUSH BX
PUSH CX
SUB AX, BX ;SP=______
POP CX
POP AX
POP BX
NOP ;SP=______
RET
MYSUB ENDP
答案:3000H 1234H 4567H 2FF8H 2FFEH
10.完善程序。BUFFER单元开始放置一个数据块,BUFFER单元存放预计数据块的长度为20H,BUFFER+1单元存放的是实际从键盘输入的字符串的长度,从BUFFER+2开始存放的是从键盘接收的字符,请将这些从键盘接收的字符再在屏幕上显示出来。
MOV DX, OFFSET BUFFER
MOV AH, _______
INT 21H ;读入字符串
LEA DX, ______
MOV AL, ______ ;实际读入的字符串的字符个数
MOV AH, 0
ADD DX, AX
MOV AL, ____
MOV [DX+1], AL
MOV AH, _____
INC DX ;确定显示字符串的首址
INT 21H
MOV AH, _____ ;系统返回DOS
INT 21H
答案:0AH BUFFER+1 [DX] '$'或24H 9 4CH
三、问答题
1.变量和标号有哪些属性?它们的区别是什么?
答案:变量、标号还有常量是汇编语言中使用的操作数,是3种基本的数据项。变量和标号都有段属性、偏移属性和类型属性3种属性,但含义不同。
变量通常指存放在存储单元中的值,在程序的运行中是可以修改的。所有的变量都具有3个属性。
(1)段属性:指变量所在段的段基址,此值必须在一个段寄存器中。
(2)偏移属性:指变量所在地址与所在段的段首地址之间的地址偏移字节数。
(3)类型属性:指变量中每个元素所包含的字节数。
标号是可执行指令语句的地址的符号表示,它可作为转移指令和调用指令CALL的目标操作数,以确定程序转向的目标地址,它也具有3个属性:
(1)段属性:指标号所在段的段基址。标号的段是它所出现的那个代码段,由CS指示。
(2)偏移属性:指标号所在地址与所在段的段首地址之间的地址偏移字节数。
(3)类型属性:标号的类型属性指在转移指令中标号可转移的距离,也称距离属性。NEAR和FAR
2.指出下列伪指令语句中的错误:
(1) DATA DB 395
(1) DATA DB 395
(2)PRGM SEG
……
PRGM ENDS
(3)ALPHA EQU BETA
(4) COUNT EQU 100
COUNT EQU 65
(5) GOON DW 10DUP(?)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论