输入字符串统计0和1的个数

通过键盘输入一串字符,以回车结束,统计并输出其中0和1的个数:

DATAS SEGMENT
STR   DB "please input a string:$" 
STR1  DB "0 numbers:$" 
STR2  DB "1 numbers:$" 
BUF   DB 20
      DB ?
      DB 20 DUP (?)
CRLF  DB 0AH,0DH,"$"
X  DB 30H   ;存储0的个数
Y  DB 30H   ;存储1的个数
DATAS ENDS

STACKS SEGMENT STACK
       DB      200 DUP(?) 
STACKS ENDS

CODES  SEGMENT
       ASSUME CS:CODES,DS:DATAS,SS:STACKS
START: MOV AX,DATAS
       MOV DS,AX
       LEA DX,STR  ;显示字符串
       MOV AH,9
       INT 21H
       MOV AH,10   ;字符串输入
       LEA DX,BUF
       INT 21H
       LEA DX,CRLF  ;输出换行回车
       MOV AH,9
       INT 21H
       MOV CL,BUF+1  ;第二个字节保存着字符个数
       LEA SI,BUF+2  ;存储字符串的地址从第3个字节开始
       DEC SI
       INC CL
NEXT:  DEC CL
       INC SI
       CMP CL,0
       JE VIE
       MOV DL,[SI] 
       CMP DL,30H
       JE XX
       CMP DL,31H
       JE YY
       JNZ NEXT   
   XX:INC X
      JMP NEXT
   YY:INC Y
      JMP NEXT
       
        
 VIE:  LEA DX,STR1
       MOV AH,9
       INT 21H
        ;MOV BL,X
        MOV DL,X
        MOV AH,2
        INT 21H
       
       LEA DX,CRLF  ;输出换行回车
       MOV AH,9
       INT 21H

       LEA DX,STR2
       MOV AH,9
       INT 21H
        ;MOV BL,Y
        MOV DL,Y
        MOV AH,2
        INT 21H

       MOV AH,4CH
       INT 21H
CODES  ENDS
    END START

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值