代码不是我写的,我就加了注释。。。。
请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。
DATAS SEGMENT
BUF1 DB 100
DB ?
DB 100 DUP(?)
BUF2 DB 'CC','$';这个一会要用字符串输出,所以要有一个美元符号。
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,BUF1
MOV AH,0AH;读入键盘输入的东西
INT 21H
MOV DL,0AH;换行
MOV AH,02H
INT 21H
MOV BL,BUF1[1];这里是把BUF1的第二个数即输入字符的个数缓存在BL里
MOV SI,2;设置起始位置
CHULI:
CMP BL,0;看看是不是处理完了
JZ EXIT
CMP BUF1[SI],'A';k看看是不是A
JZ ISA
JNZ ISB
ISB:不是A的话用02号指令输出一个字符,把要输出的用mov给DL
MOV DL,BUF1[SI]
MOV AH,02H
INT 21H
INC SI
DEC BL
JMP CHULI
ISA:;是A的话用09号指令输出一串字符,把要输出的用LEA给DX
LEA DX,BUF2
MOV AH,09H
INT 21H
INC SI
DEC BL
JMP CHULI
EXIT:
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START