从键盘接收一个字符串(假定输入字符串长度大于3),若该字符串中包括字符“A”,则显示其后的连续四个字符,若不包含字符“A”,则将字符插入到该串的第一个字符后并显示。
DATA SEGMENT
BUF DB5H
DB?
DB 5H dup(?)
LF DB 0AH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX, DATA
MOV DS, AX
LEA DX, BUF
MOV AH,0AH
INT 21H
MOV DL ,LF
MOV AH,02H
INT 21H
MOV BL ,BUF+1
MOV BH ,0
MOV BUF[BX+2] ,'$';设置字符串结束标志
DEC BX
MOV SI,0
XUHUAN1:
MOV Al, BUF[SI+2]
CMP Al,'A'
JE OUTPUT
CMP SI,BX
JZXUHUAN2
INC SI
JMP XUHUAN1
XUHUAN2:MOV SI,0
JMP XUHUAN3
XUHUAN3:
MOV Bl, BUF[SI+4]
M0V BUF[SI+5],Bl
INC SI
MOV Al,BUF[SI+5]
CMP Al,'$'
JNE XUHUAN3
JMP INSERT
INSERT:MOV SI,0
MOV BL,'A'
MOV BUF[SI+2], BL
MOV BUF[SI+1],LENGTHOF BUF
JMP OUTPUT
OUTPUT: MOV DX,OFFSET BUF
MOV AH,09H
INC 21H
MOV AX,4C00H
INT 21H
CODE ENDS
END START
|