【汇编】统计该串字符中的ASCII码在42H~45H之间的字符个数

从BUF单元开始存有一字符串(长度<255),编程实现统计该串字符中的ASCII码在42H~45H之间的字符个数,并将统计结果以二进制形式显示在屏幕上。

 

;FILENAME:    EXA131.ASM
.486
DATA SEGMENT USE16
BUF     DB     'BB'     ;开始存有一字符串
COUNT   EQU    $-BUF    ;count=字符串长度
DATA    ENDS
 
CODE SEGMENT USE16
    ASSUME CS:CODE,DS:DATA
BEG:    MOV     AX,DATA
        MOV     DS,AX
        MOV     BL,0    ;BL=满足条件的字符个数,初始值为0
        MOV     SI,0    ;BUF数组下标,初始值为0
        MOV     CX,COUNT
        CALL    BIJIAO
        CALL    DISP
EXIT:   MOV     AH,4CH
        INT     21H
    
BIJIAO PROC
LAST:   CMP     BUF[SI],42H
        JC      NEXT    ;<42H,jump
        CMP     BUF[SI],45H
        JA      NEXT    ;>45H,jump
        INC     BL      ;8位
NEXT:   INC     SI
        LOOP    LAST
        RET             ;子程序别忘记返回哟
BIJIAO ENDP
 
DISP    PROC            ;以二进制输出,BL中存储的就是二进制
        MOV     CL,8    ;显示位8位
LAST:   MOV     DL,'0'
        RCL     BL,1    ;带进位的循环左移
        JNC     NEXT    ;C=0,则跳转直接显示
        MOV     DL,'1'
NEXT:   MOV     AH,2
        INT     21H
        LOOP    LAST
        RET
DISP    ENDP
 
CODE    ENDS
        END     BEG

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值