汇编语言——统计一个字符串中的大写字母、小写字母、数字和其他字符的个数,并显示

;统计字符串中大写字母、小写字母、数字、其他字符的个数
DATAS SEGMENT
  buf db ‘12ADdf#gh592HKL*‘,‘$‘
  tp1 db 0;大写字母个数
  tp2 db 0;小写字母个数
  tp3 db 0;数字的个数
  tp4 db 0;其他字符的个数

  str1 db ‘the number of big is:‘,‘$‘
  str2 db ‘the number of small is:‘,‘$‘
  str3 db ‘the number of number is:‘,‘$‘
  str4 db ‘the number of other is:‘,‘$‘
  str5 db 0dH,0aH,‘$‘;换行

DATAS ENDS

STACKS SEGMENT
  ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
  ASSUME CS:CODES,DS:DATAS,SS:STACKS
  START:
    MOV AX,DATAS
    MOV DS,AX

    lea si, buf
    mov cx, 16;设置循环次数

     again:
      ;字符串结尾,结束程序
      cmp byte ptr[si],‘&‘
      je exit

      ;0-9
      cmp byte ptr[si],30h;小于30,其他字符加1
      jb L1
      cmp byte ptr[si],39h;大于39进一步比较
      jbe L2

      cmp byte ptr[si],41h
      jb L1
      cmp byte ptr[si],5AH
      jbe L3

      cmp byte ptr[si],61h
      jb L1
      cmp byte ptr[si],7AH
      jbe L4

    L1:
      inc tp4
      jmp L5
    L2:
      inc tp3
      jmp L5
    L3:
      inc tp1
      jmp L5
    L4:
      inc tp2
      jmp L5
    L5:
      add si,1
      loop again

    ;显示大写字母
    lea dx,str1
    mov ah,09h
    int 21h

    mov bl,tp1
    call disp ;调用子程序

    mov ah,09h
    lea dx,str5
    int 21h

    ;显示小写字母
    lea dx,str2
    mov ah,09h
    int 21h

    mov bl,tp2
    call disp ;调用子程序

    mov ah,09h
    lea dx,str5
    int 21h

    ;显示数字
    lea dx,str3
    mov ah,09h
    int 21h

    mov bl,tp3
    call disp ;调用子程序

    mov ah,09h
    lea dx,str5
    int 21h

    ;显示其他
    lea dx,str4
    mov ah,09h
    int 21h

    mov bl,tp4
    call disp ;调用子程序

    mov ah,09h
    lea dx,str5
    int 21h

    exit:
      MOV AH,4CH
      INT 21H

  disp PROC ;显示BX中的数
    mov ch,4
    roll:

      mov cl,4
      rol bx,cl
      mov dl,bl
      and dl,0fh
      cmp dl,9
      jbe next1
      add dl,07h
    next1:

       add dl,30h
      mov ah,02h
      int 21h
      dec ch
      jnz roll
    RET
  disp ENDP

CODES ENDS
  END START

时间: 2024-10-12 19:17:21

汇编语言——统计一个字符串中的大写字母、小写字母、数字和其他字符的个数,并显示的相关文章

c语言代码编程题汇总 :统计字符串中的大写和小写字母的个数

统计字符串中的大写和小写字母的个数 程序代码如下: 1 /* 2 2017年3月6日19:42:21 3 功能:统计字符串中的大写和小写字母的个数 4 */ 5 6 #include "stdio.h" 7 void fun (char *,int *,int *); 8 9 int main (void) 10 { 11 int m = 0,n = 0; 12 int *Pm = &m, *Pn = &n; 13 char s[100]; 14 printf (&qu

Java学习(4):统计一个文件中的英文,中文,数字,其他字符以及字符总数

要求:统计一个文件中的英文,中文,数字,其他字符以及字符总数(此随笔以txt文件为例) import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; /** * 将一个文件中英文,中文,数字,其

统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数,其他字符出现的次数。

/** * A:案例演示 * 需求:统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数,其他字符出现的次数. * [email protected]#$%^ * 分析:字符串是有字符组成的,而字符的值都是有范围的,通过范围来判断是否包含该字符 * 如果包含就让计数器变量自增 */ public static void main(String[] args) { String s = "[email protected]#$%^"; int big = 0; int smal

JAVA传入一个字符串,返回一个字符串中的大写字母

/** * * @param 传入一个字符串 * @return 返回一个字符串中的大写字母 */ private static String stringChange(String s) { if (Utils.isStrEmpty(s)) return ""; StringBuilder sb = new StringBuilder(); for (int i = 0; i < s.length(); i++) { if (Character.isUpperCase(s.ch

字符串之“统计一个字符串中单词的个数”

题目:统计一个字符串中单词的个数 输入一行字符,统计其中有多少个单词,单词之间用空格分隔开 输入:my name is jacky 输出:the number of word is 4 代码如下: #include <stdio.h> int main(int argc, char *argv[]) { char str[80]; int i=0,num=0,flag=0; char c; gets(str); while((c=str[i])!='\0') { if(c==' ') flag

java怎么实现统计一个字符串中字符出现的次数

问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中. 源码如下: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestCompress { 6 7 public sta

统计一个字符串中的单词的个数,并打印各个单词

/*测试数据:Shen zhen is a beautiful city!*/ /*运行结果:Word:6 Shen zhen is a beautiful city!*/ #include<stdio.h> #define SIZE 1000 void wordCount(char *str) { int count = 0, flag = 0; char *p = str; while (*p != '\0'){ while (*p == 32){ if (*(p + 1) == 0){/

黑马程序员——统计一个字符串中各个字符出现的次数

统计一个字符串中各个字符出现的次数 import java.util.Iterator; import java.util.Set; import java.util.TreeMap; public class TreeMapDemo { //统计一个字符串中相应字符出现的次数 public static void main(String[] args) { // String s = "aagfagdlkerjgavpofjmvglk我是你的"; //调用自定义方法来 统计相应字符出

统计一个字符串中第一次出现且频率最高的字符

统计一个字符串中第一次出现且频率最高的字符. public static char statMostRateChar(String str) { if (str != null && !"".equals(str)) { int charsStat[] = new int[128]; int charsFirstIdx[] = new int[128]; int strLen = str.length(); for (int ch = 0; ch < 128;ch