请问:(AX)=______,(BX)=______,(CX)=______。 21、阅读如下程序:
ADRR DB XXH,XXH,??,XXH
NUM EQU $ -ADRR RETT DB? ?
MOV CX,NUM MOV BX,-1 DON:INC BX
CMP ADRR[BX],0 LOOPZ DON JNZ NEXT
MOV BL,0FFH
NEXT: MOV RETT,BL
HLT
请问:(1)该程序完成的功能是什么?
(2)程序执行后指出RETT字节单元中的内容是什么? 22、现有一子程序: SUB1 PROC
TEST BL,80H JE PLUS
TEST AL,80H JNE EXITO JMP XCHANGE
PLUS:TEST BL,80H JE EXITO
XCHANGE:XCHG AL,BL EXITO:RET
SUB1 ENDP
试回答:(1)子程序的功能是什么?
(2)若调用子程序前AL=9AH,BL=77H,返回主程序时,AL=______,BL=______。 23、阅读程序段:
BLOCK DB 20H,1FH,08H,81H,0FFH,? RESULT DB ?
?
START:LEA SI,BLOCK
MOV CX,[SI] INC SI
MOV AL,[SI]
LOP1: CMP AL,[SI+1]
JNG NEXT
MOV AL,[SI+1] NEXT:INC SI
LOOP LOP1
MOV RESULT,AL
HLT
请问:(1)该程序完成的功能是什么?
(2)该程序循环的次数是多少?
24、阅读如下程序段,回答所提出的问题,假定X1,X2,XN为无符号数。 ORG 100H
BLOK DW X1,X2,…,XN COUNT EQU($-BLOLOK)/2 RESULT DW COUNT,? LEA BX,BLOK-2 MOV CX,RESULT XOR AX,AX
GOON:ADD BX,2 CMP AX,[BX] JAE NEXT
MOV AX,[BX]
NEXT:LOOP GOON MOV RESULT+2,AX
程序段执行完,回答下述问题
RESULT+2字存储单元的内容=______;BX=______;程序循环次数=______ 25、对于下面的数据定义,各条MOV的指令单独执行后,有关寄存器的内容是什么? FLDB DB ?
TAB1 DW 20 DUP(?) TAB2 DB ?ABCD?
A. MOV AX,TYPE FLDB
16
B. MOV AX,TYPE TAB1 C. MOV CX,LENGTH TAB1 D. MOV DX,SIZE TAB1
E. MOV CX,LENGTH TAB2
26、下面程序段执行完后,AL的内容是什么? MOV AL,10 ADD AL,AL SHL AL,1 MOV BL,AL SHL AL,1 ADD AL,BL
27、试问下面的程序段完成的功能是什么? SAL AX,1 RCL DX,1
28、假设X和X+2单元的内容为双精度数P,Y和Y+2单元的内容为双精度数Q(X和Y为低位字),试说明下列程序段做什么工作? MOV DX,X+2 MOV AX,X ADD AX,X ADC DX,X+2 CMP DX,Y+2 JL L2 JG L1
CMP AX,Y JBE L2
L1:MOV AX,1 JMP SHORT EXIT L2:MOV AX,2 EXIT:INT 20H
29、MOV AX, 9090H
SUB AX, 4AE0H JC L1 JO L2 JMP L3
上述程序执行后AX=_______,程序转向_______ 30、假设寄存器AX=1234H,DX=0A000H
MOV BX, 0 MOV CX, BX SUB CX, AX SBB BX, DX MOV AX, CX MOV DX, BX
上述程序段执行后AX=_______ ,DX=_______ 程序功能是_______
31、 BUF DB 45H, 68H, 7AH, 35H, 39H
?
MOV DI, OFFSET BUF MOV CX, 5 MOV AL, ?a' CLD
REP STOSB
该程序段执行后,BUF中的内容是_______ ,方向标志DF=_______ 32、假设寄存器AX=5AH,CX=23H
?
MOV DL, 0 LOP:SUB AX, CX
JC NEXT INC DL
JMP SHORT LOP NEXT:ADD AX, CX
HLT
上述程序段执行后,AX=_______,DL=_______ 用数学表达式指明程序功能:_______ 33、A DW 1234H
B DW 5678H :
PUSH A PUSH B POP A
17
POP B
试回答:A.上述程序段执行后(A)= ,(B)= 。 B.设执行前SP=2000H,执行后SP= 。 34、现有下列程序段:
MOV AX,6540H MOV DX,3210H MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
试问上述程序段运行后,
(AX)= ,(BL)= ,(DX)= 。 35、分析下面程序段,
MOV AL,200 SAR AL,1 MOV BL,AL MOV CL,2 SAR AL,CL ADD AL,BL
试问程序段执行后(BL)= ,(AL)= 。 36、程序段如下:
BLK1 DB 46,84,34,-5,20,122,73 :
MOV CX,7 LEA S1,BLK1
NEXT: MOV AL,[SI] INC SI
TEST AL,81H LOOPZ NEXT MOV BL,[SI] :
请回答程序段运行后:(AL)= ,(BL)= 。 37、STRING DB ?ABCDEFGHI?
:
MOV AH,01;从键盘输入字符1~9 INT 21H
AND AL,0FH DEC AL
XOR AH,AH
MOV BX,OFFSET STRING ADD BX,AX MOV BL,[BX]
MOV AH,02H ;显示输出 INT 21H :
试回答:(1)上述程序段的功能是什么?
(2)如从键盘输入字符‘4’,程序段有什么结果?
38、 AND AL,AL
JZ BRCH1 RCR AL,1 JZ BRCH2 RCL AL,1 INC AL JZ BRCH3 :
上述程序运行后,试回答:
(1)当(AL)= 时,程序转向BRCH1 (2)当(AL)= 时,程序转向BRCH2 (3)当(AL)= 时,程序转向BRCH3 39、MOV AX,0BC5FH MOV BX,0C0FBH XOR AX,BX XOR AX,BX
上述程序段运行后,AX=___________,CF=_____________ 40、HEX DB ‘0123456789ABCDEF’ HCOD DB ?,? ┇
18
MOV BX,OFFSET HEX MOV AL,1AH MOV AH,AL AND AL,0FH XLAT HEX
MOV HCOD[1],AL MOV CL,12 SHR AX,CL
XLAT HEX MOV HCOD,AL
上述程序段运行后,HCOD和HCOD+1两字节单元内容是什么? 41、DATA SEGMENT ORG 3040H
YY1 DB 30H,40H YY2 DW 3040H DATA ENDS ┇
MOV BX,OFFSET YY1 MOV AX,[BX]
MOV CL,BYTE PTR YY2+1 MOV CH,TYPE YY2
上述程序段运行后,AX=___________,BX=____________, CX=___________ 42、A DB 0F8H
B DB 3 DUP(?)
┇
LEA DI,B MOV CX,3
MOV AL,A LOP:SAR AL,1 MOV [DI],AL INC DI LOOP LOP
上述程序段运行后,从B单元开始依次存放的数据的多少?
43、已知BUF开始的数据区中存放有10个大、小写字母,下面程序段完成的功能是什么? MOV CX,10 LEA BX,BUF
K2:MOV AL,[BX] CMP AL,?Z? JBE K1
SUB AL,20H MOV [BX],AL K1:INC BX LOOP K2 ┇
44、MOV CL,8 MOV AL,0 NOT AL
ROL AL,CL CMP AL,0FFH JZ NEXT MOV AL,0 NEXT:…… 上述程序段运行后,(AL)=___________,CF=___________ 45、已知 AX=1234H MOV BX,AX NEG BX ADD AX,BX
执行上述三条指令后,AX= BX= 。 46、程序段完成什么功能? MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
47、BUF1 DB 41H,42H,43H,44H,45H,46H BUF2 DB 6 DUP(?) ?
MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6
19
LOP:MOV AL,[SI] SUB AL,7 AND AL,0FH MOV [DI],AL INC SI INC DI LOOP LOP
试回答(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么? 48、DATA SEGMENT
S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS
??
LEA SI,S9 LEA,DI,S9+1 MOV CX,5
LOP: MOV AL,[SI]
XCHG AL,[DI] MOV [SI],AL ADD SI,2 ADD DI,2 LOOP LOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么? 五、程序填空题
1、下面程序段的功能是把DA1数据区的数0-9转换为对应的ASCII码,并存入ASCI数据区。试完善本程序段。
DA1 DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H ASCI DB 10 DUP(?) CUNT = ASCI-DA1 ??
LEA SI,DA1 LEA DI,ASCI
LOP1:MOV AL,[SI]
MOV [DI],AL INC SI INC DI
LOOP LOP1
2、设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。试完善本程序。
DATA SEGMENT
A DB 1,2,3,4,5,6,7,8,9,0AH ORG 0010H
B DB 0AH,9,8,7,6,5,4,3,2,1 DATA ENDS
LEA SI,A LEA DI,B MOV CX,10 LOP:LODSB
XCHG AL,[DI] DEC DI STOSB
INC DI
LOOP LOP
3、某程序段欲用单个字符显示的2号DOS功能调用去显示一字符串“STRING”。试在下面空白处填上适当的指令 (每一空白处仅填一条指令)。 STR1 DB ?STRING? ┇
MOV CX,6
MOV BX,OFFSET STR1 LOP:MOV DL,[BX] MOV AH,02H INT 21H A.______ B.______ JNE LOP
20