您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页给出N个数(字符),统计出其中数字,字母,及其它符号的个数

给出N个数(字符),统计出其中数字,字母,及其它符号的个数

来源:意榕旅游网
给出N个数(字符),统计出其中数字,字母,及其它符号的个数 2007年12月20日 16:24

DATAS SEGMENT

N EQU 5 ;定义N的长度,即下面有N个数据,然后来按要求查找 BUF DB N

DB 31H,38H,32H,57H,76H NUM DB 3 DUP(?) DATAS ENDS

CODES SEGMENT MAIN PROC FAR

ASSUME CS:CODES,DS:DATAS START:

MOV AX,DATAS MOV DS,AX MOV CH,N

MOV BX,1 ;从下面的DB开始,把N要除去 MOV DX,0

LP: MOV AH,BUF[BX] ;针对DS,把数据段中偏移地址为BUF+BX中的数据取出来送入AH CMP AH,30H ;比较数与'0'的大小

JL NEXT ;如果小于,则跳到NEXT,否则往下 CMP AH,39H ;再和9比较

JG ABC ;通常JA/JB用于无符号的数的比较,而JG/JL则用于有符号的数的比较

INC DH ;DH中存着数字的个数 JMP NEXT ABC: CMP AH,41H JL NEXT

CMP AH,5AH JG NEXT

INC DL ;DL中存着大写字母(41H-5A)的数量 NEXT: INC BX ;地址量加1

DEC CH ;N要减1,因为里面的数少了一个数据 JNZ LP ;如果N不为0,即数没有完就继续 MOV BUF[BX],DH MOV BUF[BX+1],DL MOV AH,N

SUB AH,DH ;总的数量N-DH-DL即为剩余其它符号的个数,并且分别存入相应的地址空间 SUB AH,DL

MOV BUF[BX+2],AH

MOV CL,AH ;把其它符号的个数存入CL,等待调用

MOV AH,02H ;调用DOS命令显示一个字符,如果为1,则ASCII码对应于一个笑脸

INT 21H ;显示字母的数量

MOV DL,DH ;显示数字的数量 MOV AH,02H INT 21H

MOV DL,CL ;显示其它符号的个数 MOV AH,02H INT 21H

MOV AH,4CH INT 21H RET

MAIN ENDP

CODES ENDS END START

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务