首页 > 编程语言 >汇编语言程序设计 - 统计字符串中非数字字符的数

汇编语言程序设计 - 统计字符串中非数字字符的数

时间:2024-06-19 13:00:34浏览次数:28  
标签:字符 汇编语言 MOV AL 计数 CX 程序设计 中非 BX

80x86汇编习题
题目描述:从键盘输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示出计数结果。

思路:

有两种思路,一种是先输出,后计数;另一种是边输入,边计数。本文是用前者。

1,逐个字符输入到BUFF,指针后移,判断是否为'$',是则结束输入

2,逐个判断数组内容是否为数字,是则计数

3,输出计数内容

这个程序写得并不好,因为我做了偷懒处理,默认它输出的数字字符数是少于10个。

根据题目理解,最好的做法应该是:逐个输入,立刻判断,计数器+1,下一个输入遇到$结束。然后用十六进制输出计数器的内容。
 

DATAS SEGMENT
	BUFF DB 10 DUP(?)
DATAS ENDS

STACKS SEGMENT
    DW 100H DUP(?)
	TOP LABEL WORD  
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AX,STACKS
    MOV SS,AX
    LEA SP,TOP		;初始化
    
	LEA BX,BUFF		;缓冲区首
INPUTT:
	MOV AH,1
	INT 21H
	MOV [BX],AL		;输入一个字符
	INC BX			;指针+1
	CMP AL,'$'		;是否是$
	JNE INPUTT		;不是就继续输入
    
    LEA BX,BUFF		;移动指针到头部
	XOR CX,CX		;清空计数器
COU:
	MOV AL,[BX]		;移动到AL
	INC BX			;指针加1
	CMP AL,'$'		;是否为结束符
	JE DISP			;结束就跳到输出
	CMP AL,'0'		;是否小于0
	JB INCC			;小于0,跳转到CX+1
	CMP AL,'9'		;是否大于9
	JA INCC			;大于9,跳转到CX+1
	JMP COU			;在0-9之间,移动到下一位
INCC:
	INC CX			;非数字字符+1
	JMP COU			;


DISP:
	MOV DX,CX
	ADD DL,'0'
	MOV AH,2
	INT 21H
    
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

标签:字符,汇编语言,MOV,AL,计数,CX,程序设计,中非,BX
From: https://blog.csdn.net/m0_60740070/article/details/139798834

相关文章

  • 汇编语言程序设计 - 将当前目录下文件 FIE10.TXT 的所有小写字母改为大写字母,然后拷贝
    80x86汇编题目题目描述:编写一个程序,将当前目录下文件FIE10.TXT 的所有小写字母改为大写字母,然后拷贝到当前目录文件FILE20.TXT。思路:1,分别打开两个文件,保存文件句柄2,读取FILE10文件的一个字节到BUF内存中。3,判断是否为小写。非小写字母直接写入到FILE20文件中,小写字母......
  • 【操作系统】实验九 设备驱动程序设计
    一、实验目的分析一个典型的块设备RAM-DISK的驱动程序,学习编写设备驱动程序的一般过程。将这个RAM-DISK的程序改造成为U盘的驱动程序,并通过它来使用你的U盘。二、实验内容仔细阅读上一节中radimo的源代码,将radimo驱动程序改写成为一个U盘驱动程序。在检查时,你需要当场独......
  • 面向对象程序设计1.2 类之间的组合关系
    一、复习一下在1.1里我们定义了类Date,忘记的小伙伴可以看看下面的代码classDate{private:intyear;intmonth;intday;//数据成员,默认为私有public:Date():year(2000),month(1),day(1){}//不带参数的构造函数Date(intyear,intmonth,in......
  • (11.3)iic串口读写EEPROM实验:程序设计
    一、实验任务二、架构框图其中:i2c驱动模块: bit_ctrl:0代表发送8位字节地址;1代表发送16位字节地址(本实验采用)i2c_addr[15:0]:16位字节地址,当bit_ctrl为0时只有低8位是有效的i2c_data_w[7:0]:向EEPROM写入的8位数据i2c_exec:拉高代表当前进行......
  • 【并发程序设计】总篇集 Linux下 C语言 实现并发程序
    11_Concurrent_Programing文章目录11_Concurrent_Programing1.进程概念进程内容进程类型进程状态2.进程常用命令进程信息命令top命令进程信息表进程优先级命令nice命令renice命令后台进程命令3.子进程创建子进程fork函数结束进程exit函数_exit函数回收子进......
  • C语言程序设计(第四版)第十章主要内容
    本章主要讲述了<字符串>一、字符串字面量1.字符串字面量,有时也称为字符串常量,它是由一对双引号括起来的一个字符序列。2."a"是字符串字面量,而'a'是字符常量。3.字符串实际就是由若干有效字符构成且以'\0'作为结束的一个字符序列。二、字符串的存储1.字符串结束标志'\0'也......
  • 北京理工大学第十七届程序设计竞赛决赛
    A.赛前须知输出ACACACACAC即可点击查看代码#include<bits/stdc++.h>usingnamespacestd;#definelllonglongintmain(){std::ios::sync_with_stdio(0);std::cin.tie(0);strings="ACACACACAC";for(inti=0;i<s.size();i++)cout<<......
  • (pdf)Head First JavaScript程序设计 ([美]Eric T. Freeman,[美]Elisabeth Robson 著;袁国
    书:pan.baidu.com/s/199LHxxIlMixw3gYSY8tyPw?pwd=ywxg提取码:ywxg数据类型与变量:JavaScript支持多种数据类型,包括数字、字符串、布尔值、对象、数组等。变量用于存储这些类型的值。函数:函数是JavaScript中执行特定任务的可重用代码块。它们可以接受参数并返回结果。条件语句:使......
  • (高清pdf集合)图灵程序设计丛书:大规模数据处理入门与实战(套装全10册)【图灵出品!一套囊括S
    书:pan.baidu.com/s/1tIHXj9HmIYojAHqje09DTA?pwd=jqso提取码:jqso数据处理基础:介绍数据处理的基本概念、流程和应用场景,帮助读者建立对数据处理的整体认识。SQL语言与应用:详细讲解SQL的语法和用法,包括数据查询、数据操作和数据定义等,以及在实际应用中的最佳实践。Python数据挖......
  • 6.14实验四:共轭梯度法程序设计
    实验四:共轭梯度法程序设计一、实验目的掌握共轭梯度法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序。  二、实验内容(1)求解无约束优化问题:(2)终止准则取;(3)完成FR共轭梯度法的MATLAB编程、调试;(4)选取几个与实验二......