欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【汇编程序】统计在字符串中‘A’出现的次数

程序员文章站 2022-03-10 09:49:30
...

【汇编程序】统计字符串中‘A’出现的次数

引用文本 需求:已知STR是一个以‘ ’ 为 结 尾 的 字 符 串 ( 假 设 该 字 符 串 为 ‘ A B a b A a F F F A H b A ’ ) , 编 写 一 个 完 整 的 汇 编 语 言 程 序 , 实 现 统 计 字 符 ‘ A ’ 在 该 字 符 串 中 出 现 的 次 数 , 并 将 统 计 的 结 果 送 C O U N T 单 元 。 实 现 思 路 : 先 定 义 一 个 数 据 段 , 存 放 题 目 中 的 字 符 串 , 然 后 定 义 以 个 C O U N T 统 计 ‘ A ’ 出 现 的 次 数 , 通 过 去 判 断 每 一 个 偏 移 量 上 的 字 符 是 否 为 ‘ A ’ 或 ‘ ’为结尾的字符串(假设该字符串为‘ABabAaFFFAHbA’),编写一个完整的汇编语言程序,实现统计字符‘A’在该字符串中出现的次数,并将统计的结果送COUNT单元。 实现思路:先定义一个数据段,存放题目中的字符串,然后定义以个COUNT统计‘A’出现的次数,通过去判断每一个偏移量上的字符是否为‘A’或‘ (ABabAaFFFAHbA),ACOUNTCOUNTAA’,如果是A则程序跳转SUM,使CL计数+1,再使SI偏移量+1指向下一个字符,然后跳转回LP重新循环;如果是‘$’则跳转到EXIT,将CL计数器送往COUNT,调用4CH输出函数返回DOS

DATA SEGMENT 
    STR DB 'ABabAaFFFAHbA','$';定义STR字符串
    COUNT DB 0;定义count计数
DATA ENDS
CODE SEGMENT
    ASSUME DS:DATA,CS:CODE
STARTMOV AX,DATA
        MOV DS,AX
        MOV CL,0
        LEA SI,STR
    LP: MOV AL,[STR]
        CMP AL,'A'
        JZ SUM
        CMP AL,'$'
        JZ EXIT
        INC SI
        JMP LP
    SUM:INC CL
        INC SI
        JMP LP
   EXIT:MOV COUNT,CL
        MOV AX,4CH;调用4ch返回dos命令
        INT 21H
CODE ENDS
  END START 

【个人学习,仅供参考】