编写程序:统计字符串STRING中某个单词的个数

统计字符串STRING中某个单词的个数,字符串以’$'作为结束符,要统计的单词放在C_WORD中,统计结果存放在COUNT中。统计结果要求实现屏幕输出。


DISP_STRING MACRO Y    
    LEA DL, Y
    MOV AH, 02H
    INT 21H    ;显示字符串统计结果
ENDM
DATA  SEGMENT    
      STRING DB 'YOU ARE HAPPY I AM HAPPY EVERYONE IS HAPPY $', 13, 10, '$'
      C_WORD DB 'HAPPY'
      LEN_WORD EQU $-C_WORD  
      COUNT DB 0
DATA  ENDS

ASTACK  SEGMENT STACK
        DW  256 DUP(0)
TOP     LABEL   WORD
ASTACK  ENDS                 

CODE    SEGMENT
        ASSUME  CS:CODE,DS:DATA,SS:ASTACK,ES:DATA
START:  MOV AX, DATA
        MOV DS, AX           ;设置DS
        MOV ES, AX           ;设置ES
        MOV AX, ASTACK
        MOV SS, AX           ;设置SS
        LEA SP, TOP          ;设置SP        
        CLD                  ;方向标志位DF清零
        LEA SI, STRING       ;SI指向STRING
L3:     MOV CX, LEN_WORD 
        LEA DI, C_WORD       ;DI指向C_WORD的第一个字符的偏移地址
        MOV AX, SI 
        REPE CMPSB           ;字符串比较
        JZ  L1               ;相等即匹配则跳转到L1 
        JNZ L2               ;不相等则跳转到L2 

L1:
        INC COUNT      
        CMP [SI],  ‘$        ;判断句子是否结束   **注意此处的 $ 要单引号,因为CSDN博客加单引号之后效果不一样,因此少一个单引号**
        JZ  EXIT             ;是则跳到EXIT 
        JMP L3               ;不是则跳到L3继续查词 
L2:
        CMP [SI], '$'        
        JE  EXIT
        JMP L3      

              
EXIT:   
        MOV DL, COUNT 
        ADD DL, 30H         ;加30H即转为十进制
        MOV AH, 02H
        INT 21H             ;以十进制显示单词个数         
        MOV AH, 4CH
        INT 21H             ;返回操作系统
                
CODE  ENDS
END START       

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值