MOV AX,STACK MOV SS,AX MOV BL,C MOV SI,BUF L1: PUSH SI CALL SUBP1 CALL SUBP2 POP SI INC SI DEC BL JNZ L1
MOV AH,4CH INT 21H
SUBP1 PROC PUSH AX PUSH DX
L2: MOV DL,41H MOV AH,2 INT 21H DEC SI JNZ L2 POP DX POP AX RET
SUBP1 ENDP
SUBP2 PROC PUSH AX PUSH DX MOV CX,8 L3: MOV DL,'*' MOV AH,2 INT 21H LOOP L3
MOV DL,0DH MOV AH,2 INT 21H
MOV DL,0AH MOV AH,2 INT 21H POP DX POP AX RET
11
SUBP2 ENDP CODE ENDS END START 请回答:(1)SUBP1子程序完成的功能是什么? (2)SUBP2子程序完成的功能是什么? (3)该程序完成的功能是什么?
11.现有程序如下:
DATA SEGMENT X DB 0ABH FLAG DB 0 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X CMP AL,0 JGE L
MOV FLAG,0 JMP EXIT
L: MOV FLAG,1 EXIT: MOV AH,4CH INT 21H CODE ENDS END START 请回答:(1)该程序完成什么功能?
(2)程序执行完后FLAG中的内容是多少? 12.现有程序如下: DATA SEGMENT BUF DB 0 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,1 INT 21H CMP AL,61H JB N
CMP AL,7AH JA N
SUB AL,20H N: MOV BUF,AL
12
MOV AH,4CH INT 21H CODE ENDS
END START 请回答:(1)该程序完成什么功能?
(2)如果要将“CMP AL,7AH”改为“CMP AL,7BH”,则相应的指令 “JA N”应改为什么指令?
13.现有程序如下: DATA SEGMENT A DB 23 B DB 0F0H C DB 0 DATA ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,A CMP AL,B JZ L JG M
MOV C,-1 JMP EXIT L: MOV C,0 JMP EXIT M: MOV C,1
EXIT: MOV AH,4CH INT 21H CODE ENDS END START 请回答:(1)该程序完成什么功能? (2)程序运行后,C中的内容是什么?
14.现有程序如下:
DATA SEGMENT X DW 7000H Y DW 9000H DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,X
13
SUB AX,Y JO L
MOV DL,?N? JMP EXIT
L: MOV DL,?Y? EXIT: MOV AH,2 INT 21H MOV AH,4CH INT 21H CODE ENDS
END START 请回答:(1)请程序完成什么功能?
(2)程序执行完后,显示输出的结果如何?
15.阅读以下程序,该程序段完成什么功能? AND CX,0101H AND DX,0101H TEST CL,DL JE ABC TEST CH,DH JE ABC STI
JMP EXIT ABC: CLI EXIT: RET
16.现有程序如下: DATA SEGMENT
BUF DB 23,125,96 DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,BUF MOV AL,[SI] MOV BL,[SI+1] MOV CL, [SI+2] CMP AL, BL JAE N1
XCHG AL, BL N1: CMP AL, CL JAE N2
XCHG AL, CL
14
N2: CMP BL, CL JAE N3
XCHG BL, CL N3: MOV [SI], AL MOV [SI+1], BL MOV [SI+2], CL MOV AH, 4CH INT 21H CODE ENDS END START 请回答:(1)该程序完成什么功能?
(2)程序运行后BUF中的内容依次是什么?
17.现有程序如下: DATA SEGMENT X DB 4FH BUF DB 2 DUP (0) DATA ENDS CODE SEGMENT
ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV AL,X MOV CL,4 SHR AL,CL CMP AL,9 JBE L ADD AL,7 L:ADD AL,30H MOV BUF,AL MOV AL,X AND AL,0FH CMP AL,10 JB M ADD AL,7 M:ADD AL,30H MOV BUF+1,AL MOV AH,4CH INT 21H CODE ENDS END START 请回答:(1)该程序完成什么功能?
(2)程序运行后BUF中的内容依次是什么?
15