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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务