四、程序分析题(本大题共7小题,每小题5分,共35分)
29.MOV AX,7452H
ADD AL,AH
DAA
XCHG AH,AL
SUB AL,AH
DAS
程序段运行后,AX=____________,CF=____________。
30.已知AX=7865H,BX=89AAH
CLC
ADD AX,BX
OR BX,AX
RCR AX,1
RCL BX,1
程序执行后,AX=____________BX=____________CF=____________
31.①AND AL,0FAH
XOR AL,0FFH
②XOR AL,0AFH
OR AL,50H
阅读上述指令,分别回答各指令序列完成什么功能?
32.DA1 DB 1AH,2BH,3CH,4DH,5EH,6FH
DA2 DB 6 DUP(0)
LEA SI,DA1+5
MOV BX,0FFSET DA2
MOV CX,604H
STD
LOP: LODSB
ROL AL,CL
MOV [BX],AL
INC BX
DEC CH
JNZ LOP
①程序执行后DA2中各字节内容是什么?
②程序中ROL AL,CL是否用ROR AL,CL指令替代,其功能不变。
33. DA1 DB‘ABCDE $ FGHI’
DA2 DB $ -DA1 DUP(?)
CALL SUB1
SUB1 PROC
MOV BX,0
LOP:CMP BYTE PTR DA1[BX],‘$’
JZ AR
MOV AL,DA1[BX]
MOV DA2 [BX],AL
INC BX
JMP LOP
AR:RET
SUB1 ENDP
①上述子程序的功能是什么?
②返回主程序时,BX=____________。
34.AR1 DB ‘ABCDEFGH’
AR2 DB O
MOV AH,1
INT 21H ;键盘输入
AND AL,0FH
DEC AL
LEA BX,AR1
XLAT AR1
MOV AR2,AL
①假设键盘输入数字4,则执行后(AR2)=____________;
②执行后CF=____________。
35.BCD1 DB 46H
MOV AL,BCD1
MOV CL,4
SHR AL,CL
SAL AL,1
MOV CL,AL
SAL AL,1
SAL AL,1
ADD AL,CL
MOV CL,BCD1
AND CL,0FH
ADD AL,CL
上述程序段完成的功能是什么?
程序段运行结束后AL=____________。
六、编制程序题(本大题共3小题,共22分)
38.限用三条指令实现将DA1和DA2二个字节存储单元的内容进行交换。(5分)
39.试编制一程序段,用串操作指令STOSB实现向DA数据区依次相间存放字母字符A,B,……J和数字字符0~9。相间顺序是:A,0,B,1,C,2…,I,8,J,9。(设DA数据区所在段已由ES指向)。(5分)
40.已知三个带符号的字节数据a,b,c存放在ADR开始的连续单元中,若a,b,c同时为正数则FLAG单元置0,若同时为负数,则FLAG单元置1,否则FLAG单元置全1,请编写完整源程序。(12分)