汇编语言程序设计习题-答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.1 分析执行下列指令序列后的结果:
1)MOV AX,1234H
MOV BX,00FFH
AND AX,BX
【答】(AX)=0034H
2)MOV AL,01010101B
AND AL,00011111B ;(AL)=00010101B
OR AL,11000000B ;(AL)=11010101B
XOR AL,00001111B ;(AL)=11011010B
NOT AL
【答】(AL)=00100101B
3)MOV DL,05H
MOV AX,0A00H
MOV DS,AX
MOV SI,0H
MOV CX,0FH
AGAIN: INC SI
CMP [SI],DL
LOOPNE AGAIN
HLT
本程序实现了什么功能?
【答】在以0A001H开始的15个单元中查找05H。
4)MOV AX,DSEGADDR
MOV DS, AX
MOV ES,AX
MOV SI, OFFSET B1ADDR
MOV DI,OFFSET B2ADDR
MOV CX,N
CLD
REP MOVSB
HLT
本程序实现了什么功能?
【答】将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元。
5)MOV AX, 0H
MOV DS,AX
MOV ES, AX
MOV AL,05H
MOV DI,0A000H
MOV CX,0FH
CLD
AGAIN: SCASB
LOOPNE AGAIN
HLT
本程序实现了什么功能?
【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H的查找。
4.2 阅读程序:
1). CLD
LEA DI,[0100H]
MOV CX, 0080H
XOR AX, AX
REP STOSW
本程序实现了什么功能?
【答】将DS中起始地址为0100H的128个字节单元清零。
2). MOV AL, 08H
SAL AL,01H ;(AL)=00010000H
MOV BL, AL
MOV CL ,02H
SAL AL,CL ;(AL)=01000000H
ADD AL,BL ;(AL)=01010000H
本程序实现了什么功能?
【答】将AL中的内容乘以10。
4.3 试分析下列程序完成什么功能?
MOV DX,3F08H
MOV AH,0A2H
MOV CL,4
SHL DX,CL ;(DX)=F080H
MOV BL,AH
SHL BL,CL ;(BL)=20H
SHR BL,CL ;(BL)=02H
OR DL,BL ;(DL)=82H
【答】将DX中的低4位数据8H分离出来,将AH中的低4位数据2H分离出来,合并为82H 存放在DL。
4.4 已知程序段如下:
MOV AX,1234H
MOV CL,4
ROL AX,CL
DEC AX
MOV CX,4
MUL CX
试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF 及ZF的值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少?
【答】MOV AX,1234H ; (AX)=1234H, CF=SF=ZF=0
MOV CL,4
ROL AX,CL ; (AX)=2341H ,CF=1,SF=ZF=0
DEC AX ; (AX)=2340H, CF=1,SF=ZF=0
MOV CX,4 ;
MUL CX ;(AX)= 8000H ,CF=ZF=0,SF=1,DX=0
4.5 试分析下列程序段:
ADD AX,BX
JNC L2
SUB AX,BX
JNC L3
JMP SHORTL5
如果AX、BX的内容给定如下:
AX BX
(1)14C6H 80DCH (程序转向L2)
(2)B568H 54B7H (程序转向SHORTL5 )
问该程序在上述情况下执行后,程序转向何处?
【答】(1) 程序转向L2。
(2) 程序转向SHORTL5。
4.6 以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?
DATA SEGMENT
VAR1 DW 9 ;2字节
VAR2 DD 10 DUP(?),2 ;44字节
VAR3 DB 2 DUP(?,10 DUP(?)) ;22字节
VAR4 DB ‘HOW ARE YOU' ;11字节
DATA ENDS
【答】该数据段共占79字节。
4.7 下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。
VAR1 DB 10,2 ;2字节
VAR2 DW 5DUP(?),0 ;12字节
VAR3 DB ‘HOW ARE YOU?',‘$' ;13字节
;2字节