您的位置 首页 报告

汇编:计算字符串内各种字符的数目

;对这个题目进一步改造:;3_7用户输入一个由数字lsquo;0rsquo;~lsquo;9rsquo;英文大写字母lsquo;Arsquo;~lsquo;Zrsquo;;以及英文

;对这个标题进一步改造:
;3_7 用户输入一个由数字‘0’~‘9’英文大写字母‘A’~‘Z’;以及英文小写字母‘a’~‘z’组成的ASCII 字符串,
;字符串的结束符为 CR(即回车符,其ASCII 码为0DH),字符串总长度不超越256 个。
;要求计算传送的字符总数以及其间各种字符的数目

DATA SEGMENT
SUM DB 00H ;总数 计数器
CAPITAL DB 00h ;大写字母个数 计数器
small db 00h ;小写字母个数 计数器
num db 00h ;数字个数 计数器
result db The amout all of the zifu in this string is ,$
result1 db The amout of the number in the string is ,$
result2 db The amout of the big capital is ,$
result3 db The amout of the small capital is ,$
string db 256 dup (?) ;保存输入的字符
kongzi DB 0DH,0AH,$ ;换行运用
buffer DB 256 DUP(0) ;方针内存
results DB 256 DUP(?)
tital db Please input the string you want to be done : ,0dh,0ah,$
tip db Do you want to have a try again (if yes: “y” ,else “n”): ,$
tip1 db welcome to use the program again ,the original is WQ ,$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
lea dx,tital
mov ah,09h
int 21h
mov di,0
again:
mov ah,01h
int 21h
mov string[di],al
inc di
cmp al,0dh
jnz again
cld ;将方向标志方位零 串操作递加
main: lods string ;字符串装入指令 把字符串一个个装入al
INC SUM
CMP AL,0DH
JE DONE
CMP AL,30H
Jb main
cmp al,41h
jb k1
CMP AL,61H
Jb k2
JMP main
DONE:
lea dx,result ;输出SUM
mov ah,09h
int 21h
DEC SUM
MOV AX,0
MOV AL,SUM
MOV BL,10
DIV BL
MOV DX,AX
ADD DX,3020H ;为什么要加20呢?
cmp dl,30h
jnz wuling
mov dl,20h
wuling:
MOV AH,02h
INT 21H
MOV DL,DH ;这是在干什么?
MOV AH,2h ;2号调用每次只输出一个字符,即dl
INT 21H
LEA DX,kongzi ;换行
MOV AH,09H
INT 21H

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/255073.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部