汇编语言程序设计习题-答案.doc
文本预览下载声明
4.1 分析执行下列指令序列后的结果:
1) MOV AX,1234H
MOV BX,00FFH
AND AX,BX
【答】(AX)=0034H
2) MOV AL
AND AL ;(AL)
OR AL ;(AL)
XOR AL ;(AL)
NOT AL
【答】(AL)
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)
MOV BL, AL
MOV CL ,02H
SAL AL,CL ;(AL)
ADD AL,BL ;(AL)
本程序实现了什么功能?
【答】 将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
显示全部