资源描述
一、
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
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
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)
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
MOV 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 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
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 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. 请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。
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
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 AH,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 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
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
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:
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 ?
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 ;输入字符串
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:
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 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]
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,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,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]
MOV ACC,DL ;记录字符串个数
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
谢谢大家下载,本文档下载后可根据实际情况进行编辑修改.再次谢谢大家下载.翱翔在知识的海洋吧.
展开阅读全文