四、程序分析题(本大题共6小题,每小题6分,共36分)
31.BUF1 DB -1,2,-3,4,-5,6,-7,8,-9
BUF2 DB 9 DUP(O)
┇
XOR BL,BL
MOV SI,O
MOV CX,9
LOP:MOV AL,BUF1[SI]
TEST AL,80H
JZ K
INC BL
NEG AL
K:XOR AL,01H
MOV BUF2[SI],AL
INC SI
LOOP LOP
……
①写出程序运行后BUF2各字节中的数据
②BL=______________
32.D来源:91exam.orgD2 DB 0,l,2,3,4,5,6,7,8,9
┇
LEA SI,DD2
LEA DI,DD2+1
MOV CX,5
LOP:MOV AL,[SI]
XCHG AL,[DI]
MOV [SI],AL
ADD SI,2
ADD DI,2
DEC CX
JNZ LOP
上述程序段执行后,回答:
①该程序段完成什么功能?
②DD2开始的l0个字节数应是什么值?
33. XOR BL, BL
NEG BL
JZ NEXT
ADD BL, 5
JMP DONE
NEXT:NOT BL
DONE:……
程序段执行后,BL=______________,CF=______________
34.R1 DB 246
┇
XOR BH,BH
MOV AL,R1
MOV DL,10
LOP:CMP AL,0
JBE NEXT
MOV AH,0
DIV DL
MOV BL,AH
PUSH BX
JMP LOP
NEXT:……
┇
上述程序段执行后共向堆栈压入______________个数,按压入的先后次序该数列为______________。
35.VAR1 DB 56H,76H,87H,98H,0A9H
┇
MOV CX,WORD PTR VAR1
AND CX,0AH
MOV BX,WORD PTR VAR1+3
SAR BX,CL
程序段运行后,BX=______________ ,CX=______________。
36.已知AX=1234H
MOV BX,AX
NOT BX
XOR BX,AX
上述程序段执行后,BX=______________。如把XOR指令改为OR指令,那么程序段执行后,BX=______________。五、程序填空题(本大题共2小题,每小题6分,共12分)
37.下面程序段实现把DA1字单元内容取绝对值后送到DA2中,请在横线处各填一条指令。
DA1 DW ××××
DA2 DW ?
┇
MOV AX,DA1
①______________
JNS K
②______________
K:MOV DA2,AX
38.下面程序段完成用串指令在DA1开始的26个字节单元中依次存放A—Z的ASCII码,在DA2开始的26个字节单元中依次存放Z—A的ASCII码,请在横线处各填一条指令。
DA1 DB 26 DUP(?)
DA2 DB 26 DUP(?)
┇
LEA DI,DA1
MOV AL,‘A’
MOV CX,26
CLD
LOP1:STOSB
①______________
LOOP LOP1
MOV CX,26
LOP2:②______________
STOSB
LOOP LOP2
六、编制程序题(本大题共2小题,39小题6分,40小题12分,共18分)
39.(6分)试编制一程序段,判断CX和DX中第7,15位是否完全对应相同。如完全相同,CF置1,否则CF置0。
40.(12分)试编写一个源程序实现两个一位八进制数相加,两个八进制数分别存放在NUM1,NUM2字节单元中,相加结果存放在RESULT1(低位)和RESULT2(高位)中,数据段分配如下:
DATA SEGMENT
NUM1 DB X
NUM2 DB Y
RESULT1 DB 0
RESULT2 DB 0
DATA ENDS