从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的结果显示在屏幕上,用EXE格式实现。
问题
从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的结果显示在屏幕上,用EXE格式实现。
源程序
data segment
hintinput db "please input a string:$";输入提示语
hintoutput db "non-number:$";输出提示语
str db 30,?,30 dup(?);将输入的字符串保存在str中
crlf db 0ah,0dh,'$';回车换行符
data ends
code segment
assume cs:code,ds:data
main proc far
start:
mov ax,data
mov ds,ax
lea dx,hintinput;输出提示语
mov ah,09h
int 21h
lea dx,crlf ;回车换行
mov ah,09h
int 21h
lea dx,str
mov ah,0ah
int 21h
lea dx,crlf ;回车换行
mov ah,09h
int 21h
lea si,str+2;si保存str首地址
mov cl,str+1;cl保存str长度
mov al,0 ;用al非数字计数
mov ch,0
L1:
mov dl,[si] ;把str中的数依次送入dl中
cmp dl,'0' ;如果dl<0,al加1
jb L2
cmp dl,'9';如果dl>9,al加1
ja L2
cmp dl,'9'
jbe L3
L2:
inc al
L3:
inc si
loop L1
lea dx,hintoutput;输出提示语
mov ah,09h
int 21h
mov dl,al
cmp dl,9h
jbe L ;如果非字母个数小于10,则直接加30输出
mov dh,0 ;否则把dx存入ax中
mov ax,dx
mov bl,10 ;ax除以10后,ah作为商
div bl ;al作为余数
mov dl,al
add dl,30h ;先输出商,再输出余数,就是10进制了
mov ah,02h
int 21h
mov dl,ah
L:
add dl,30h
mov ah,02h
int 21h
lea dx,crlf ;回车换行
mov ah,09h
int 21h
mov ax,4c00h
int 21h
main endp
code ends
end start
运行结果示例

从键盘输入一个字符串(长度不超过30),统计字符串中非数字的个数,并将统计的结果显示在屏幕上,用EXE格式实现。的更多相关文章
- 统计一个16位二进制数中1的个数,并将结果以十六进制形式显示在屏幕上,用COM格式实现。
问题 统计一个16位二进制数中1的个数,并将结果以十六进制形式显示在屏幕上,用COM格式实现. 代码 code segment assume cs:code org 100h main proc ne ...
- 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)
(1)从键盘输入一个字符串(串长不大于80). (2)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z). (3)输出原字符串且令非字母字符闪烁显示. (4)找出字符串中ASCI ...
- 设在起始地址为STRING的存储空间存放了一个字符串(该串已存放在内存中,无需输入,且串长不超过99),统计字符串中字符“A”的个数,并将结果显示在屏幕上。
问题 设在起始地址为STRING的存储空间存放了一个字符串(该串已存放在内存中,无需输入,且串长不超过99),统计字符串中字符"A"的个数,并将结果显示在屏幕上. 代码 data ...
- Java不限制从键盘输入一个数组
Java不限制从键盘输入一个数组 在写算法的时候,需要从键盘输入一个数组,一直不会,最近看了几篇博客学会了,下面用二分查找举例: package com.基础; import java.util.Sc ...
- [汇编] 从键盘输入一个一位数字,然后响铃n声
; multi-segment executable file template. data segment ends stack segment dw dup() ends code segment ...
- c/c++,输入一个字符 2014-11-20 07:00 30人阅读 评论(0) 收藏
getch().getche()和getchar()函数 (1) getch()和getche()函数 这两个函数都是从键盘上读入一个字符.其调用格式为: getch(); ...
- PHP计算中文字符串长度 、截取相应中文字符串
PHP计算字符串长度 及其 截取相应中文字符串 计算字符长度: $gouWu = '美日汇http://www.hnzyxok.com/'; echo mb_strlen($gouWu,' ...
- 剑指offer11:输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。(进制转换,补码反码)
1. 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 2. 思路和方法 使用移位(<<)和 “| & !”操作来实现.1的二进制是:前面都是0,最后一位 ...
- for循环:从键盘输入一个正整数n,
#include<stdio.h>void main(){ int i,n,sum=0; //声明三个整型变量,并为变量sum初始化赋值为0// printf("Please e ...
随机推荐
- CentOS 的命令链接符“;”
";" 用于在一行中输入多个命令,执行顺序=输入顺序. For instance: $ ls -a;cd Music
- C#6.0到C#8.0的新特性
C#6.0新特性 C#7.0新特性 C#8.0新特性
- Mysql如何取当日的数据
下面的sql语句可以取出当日的数据 SELECT * FROM table WHERE 时间字段 BETWEEN DATE_FORMAT(NOW(),'%Y-%m-%d 00:00:00') AND ...
- 结合实际需求,在webapi内利用WebSocket建立单向的消息推送平台,让A页面和服务端建立WebSocket连接,让其他页面可以及时给A页面推送消息
1.需求示意图 2.需求描述 原本是为了给做unity3d客户端开发的同事提供不定时的消息推送,比如商城购买道具后服务端将道具信息推送给客户端. 本篇文章简化理解,用“相关部门开展活动,向全市人民征集 ...
- JVM 专题二十一:垃圾回收(五)垃圾回收器 (二)
3. 回收器 3.1 Serial回收器:串行回收 3.1.1 概述 Serial收集器是最基本.历史最悠久的垃圾收集器了.JDK1.3之前回收新生代唯一的选择. Serial收集器作为Hotspot ...
- 手把手从零开始---封装一个vue视频播放器组件
现在,在网页上播放视频已经越来越流行,但是网上的资料鱼龙混杂,很难找到自己想要的,今天小编就自己的亲身开发体验,手把手从零开始---封装一个vue视频播放器组件. 作为一个老道的前端搬砖师,怎么可能会 ...
- SpringMVC中@RequestBody接收前端传来的多个参数
在使用ajax发送请求时,如果发送的JSON数据是一个类中的不同属性,在Controller方法中使用@RequestBody会直接封装进该类中 例如: 前端部分代码 JavaScript <s ...
- Spring Boot整合swagger使用教程
目录 Swagger的介绍 优点与缺点 添加swagger 1.添加依赖包: 2.配置Swagger: 3.测试 场景: 定义接口组 定义接口 定义接口请求参数 场景一:请求参数是实体类. 场景二:请 ...
- 静态代理,动态代理和CGLIB代理模式
代理模式 一.概述 代理是一种模式,提供了对目标对象的间接访问方式,即通过代理访问目标对象.如此便于在目标实现的基础上增加额外的功能操作,前拦截,后拦截等,以满足自身的业务需求,同时代理模式便于扩展目 ...
- 生产日志文件太大NotePad++无法打开
问题1:NotePad++无法打开 解决方式:下载软件 LogView Pro ,用 LogView Pro打开 https://download.csdn.net/download/u0145212 ...