DATAS SEGMENT
IN_X DB 16
IN_N DB ?
IN_B DB 16 DUP('X')
IN_E DB ?
MSG1 DB 'Please input STR (Len = 1~15): ', 13, 10, 36
MSG2 DB 13, 10, 'Please input a char : '
MSG3 DB 13, 10, 36
MSG4 DB 13, 10, 'no word.', 13, 10, 36
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX, DATAS
MOV DS, AX
;-----------------------------------
LEA DX, MSG1
MOV AH, 9
INT 21H
LEA DX, IN_X
MOV AH, 10
INT 21H
CMP BYTE PTR IN_N, 1
JB EXIT
LEA DX, MSG2
MOV AH, 9
INT 21H
MOV AH, 1
INT 21H
MOV IN_E, AL
LEA DX, MSG3
MOV AH, 9
INT 21H
;-------------------------
MOV AL, IN_E
LEA BX, IN_B
MOV CL, IN_N
MOV CH, 0
LP1:
CMP AL, [BX]
JE DISP
INC BX
LOOP LP1
JMP H_NOT
;-------------------------
DISP:
MOV DH, AL
MOV AH, 2
LEA BX, IN_B
MOV CL, IN_N
MOV CH, 0
MOV BP, 0
LP2:
MOV DL, [BX]
INC BX
CMP BP, 0
JNE DISP1
CMP DL, DH
JNE DISP1
MOV BP, 1
JMP NEXT
DISP1:
INT 21H
NEXT:
LOOP LP2
MOV DL, DH
INT 21H
JMP EXIT
;-------------------------
H_NOT:
LEA DX, MSG4
MOV AH, 9
INT 21H
EXIT:
MOV AH, 4CH
INT 21H
CODES ENDS
END START
可以满足题目要求。
温馨提示:内容为网友见解,仅供参考