1、一、 1. 请任意输入一个字符串,将该串倒序后在屏幕上显示。 DATAS SEGMENT BUF DB 40 DB ? DB 40 DUP(0) ACC DB 0 CHAR DB ? DATAS ENDS STACKS SEGMENT DB 100 DUP(0) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: MOV AX,DATAS MOV DS,AX
2、 MOV AH,0AH LEA DX,BUF INT 21H ; 输入字符串 MOV AH,0EH MOV AL,0DH INT 10H MOV AL,0AH INT 10H ;回车换行 LEA SI,BUF MOV AL,[SI+1] MOV AH,0 MOV ACC,AL INC SI ADD SI,AX L1: MOV DL,[SI] MOV AH,02H INT 21H
3、 DEC SI DEC ACC CMP ACC,0 JNZ L1 MOV AH,4CH INT 21H CODES ENDS END START 2. 请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。 DATA SEGMENT BUF DB 100 DB ? DB 100 DUP(?) CHAR DB 0 ACC DB 0 SPACE DB 0 CHARA DB 0 DATA ENDS STACK SEGMENT DB 100 DUP(0)
4、 STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE MAIN PROC FAR MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,0AH INT 21H ;输入字符串 MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H LEA SI,BUF MOV AL,[SI+1] MOV ACC,AL MO
5、V SI,2 L: CMP BUF[SI],' ' JZ LSPACE CMP BUF[SI],'A' JZ LCHARA INC SI DEC ACC CMP ACC,0 JZ SHOW JMP L LSPACE: INC SPACE INC SI DEC ACC CMP ACC,0 JZ SHOW JMP L LCHARA: INC CHARA INC SI DEC ACC CMP
6、 ACC,0 JZ SHOW JMP L SHOW: CMP SPACE,0AH JAE SHOWS ADD SPACE,30H MOV DL,SPACE MOV AH,2 INT 21H ;若SPACE小于10个,直接输出个数 SHOW1: MOV AH,0EH MOV AL,0DH INT 10H MOV AL,0AH INT 10H CMP CHARA,0AH JAE SHOWA
7、 ADD CHARA,30H MOV AH,2 MOV DL,CHARA INT 21H ;若A个数小于10,直接输出个数 JMP EXIT SHOWS: MOV AL,SPACE MOV AH,0 MOV DL,10 DIV DL ADD AH,30H MOV SPACE,AH ADD AL,30H MOV AH,2 MOV DL,AL INT 21H MOV DL,SPACE INT 21H JMP
8、 SHOW1 SHOWA: MOV AL,CHARA MOV AH,0 MOV DL,10 DIV DL ADD AH,30H MOV CHARA,AH ADD AL,30H MOV AH,2 MOV DL,AL INT 21H MOV DL,CHARA INT 21H EXIT: MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END MAIN 3. 请任意输入一个字符串,将其中的
9、空格全部删除,并将结果显示在屏幕上。 DATA SEGMENT BUF DB 100 DB ? DB 100 DUP(?) INP DB 'Please input a string:','$' CHAR DB 0 ACC DB 0 DATA ENDS STACK SEGMENT DB 100 DUP(0) STACK ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE,ES:STACK START: MOV AX,DATA MOV DS,AX ; 赋初值 MOV AH,09H
10、 LEA DX,INP INT 21H ; 提示输入 MOV AH,0AH LEA DX,BUF INT 21H ; 输入字符串 MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ; 回车换行 LEA SI,BUF MOV DL,[SI+1] MOV ACC,DL MOV SI,2 LOP: MOV DL,BUF[SI] MOV CHAR,DL CMP CHAR,' ' JZ LADD MOV A
11、H,2 MOV DL,CHAR INT 21H ;若不是空格则输出 LADD: INC SI DEC ACC CMP ACC,0 JZ EXIT JMP LOP EXIT: MOV AH,4CH INT 21H CODE ENDS END START 4. 请任意输入一个字符串,将其中A换成B,并将结果显示在屏幕上。 DATA SEGMENT INP DB 'Please input a string:','$' CHAR DB 0 ACC
12、DB 0 BUF DB 50 DB ? DB 50 DUP(0) DATA ENDS STACK SEGMENT DB 100 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,9 LEA DX,INP INT 21H ;提示输入字符串 MOV AH,0AH LEA DX,BUF INT 21H M
13、OV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;输入字符串 LEA SI,BUF MOV DL,[SI+1] MOV ACC,DL ;记录字符串个数 MOV SI,2 MOV AH,2 LA: MOV DL,BUF[SI] CMP DL,'A' JZ PUTCC INT 21H LAD:INC SI DEC ACC MOV DH,ACC CMP DH,0
14、 JZ EXIT JMP LA PUTCC: MOV DL,'C' INT 21H INT 21H JMP LAD EXIT: MOV AH,4CH INT 21H CODE ENDS END START 5. 请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。 DATA SEGMENT INP DB 'Please input a string:','$' CHAR DB 0 ACC DB 0 BUF DB 50 DB ?
15、DB 50 DUP(0) DATA ENDS STACK SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,9 LEA DX,INP INT 21H ;提示输入字符串 MOV AH,0AH LEA DX,BUF INT 21H MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;输入字符串
16、 LEA SI,BUF MOV DL,[SI+1] MOV ACC,DL ;记录字符串个数 MOV SI,2 MOV AH,2 LA: MOV DL,BUF[SI] CMP DL,'A' JZ PUTCC INT 21H LAD:INC SI DEC ACC MOV DH,ACC CMP DH,0 JZ EXIT JMP LA PUTCC: INT 21H INT 21H JMP LAD EXIT:
17、 MOV AH,4CH INT 21H CODE ENDS END START 6. 请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。 DATA SEGMENT INP DB 'Please input a string:','$' CHAR DB 0 ACC DB 0 BUF DB 50 DB ? DB 50 DUP(0) DATA ENDS STACK SEGMENT DB 100 DUP(0) STACK ENDS CODE SEGMENT ASSUME
18、 CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AH,9 LEA DX,INP INT 21H ;提示输入字符串 MOV AH,0AH LEA DX,BUF INT 21H MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;输入字符串 LEA SI,BUF MOV DL,[SI+1]
19、MOV ACC,DL ;记录字符串个数 MOV SI,2 MOV AH,2 LA: MOV DL,BUF[SI] CMP DL,'A' JB PUT CMP DL,'Z' JBE PUTCHG PUT:INT 21H JMP LAD PUTCHG: ADD DL,32 INT 21H LAD:INC SI DEC ACC MOV DH,ACC CMP DH,0 JZ EXIT JMP LA EXIT: MOV AH,
20、4CH INT 21H CODE ENDS END START 7. 请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。 DATA SEGMENT INP DB 'Please input a string:','$' CHAR DB 0 ACC DB 0 BUF DB 50 DB ? DB 50 DUP(0) DATA ENDS STACK SEGMENT DB 100 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,D
21、S:DATA START: MOV AX,DATA MOV DS,AX MOV AH,9 LEA DX,INP INT 21H ;提示输入字符串 MOV AH,0AH LEA DX,BUF INT 21H MOV AH,2 MOV DL,0DH INT 21H MOV DL,0AH INT 21H ;输入字符串 LEA SI,BUF MOV DL,[SI+1] MOV ACC,DL
22、 ;记录字符串个数 MOV SI,2 MOV AH,2 LA: MOV DL,BUF[SI] CMP DL,'A' JB PUT CMP DL,'Z' JBE LAD CMP DL,'a' JB PUT CMP DL,'z' JBE LAD PUT: INT 21H JMP LAD LAD:INC SI DEC ACC MOV DH,ACC CMP DH,0 JZ EXIT JMP LA EXIT: MOV AH,4CH INT 21H CODE ENDS END START 谢谢大家下载,本文档下载后可根据实际情况进行编辑修改.再次谢谢大家下载.翱翔在知识的海洋吧.






