汇编语言(十四)之判断字符串是否包含数字

输入一串字符串,判断字符串里面是否包含数字,如果包含数字输出把cl的第五位设置为1,否则设置为0

程序运行:

 

代码:


datas segmentSTRING_maxLength                    db  0ffhSTRING_Length                       db   ?STRING                              db  100h dup(?)inputPrompt                         db 'input a line:$'outputPrompt                        db 'cl=$'nextLine                            db 0dh,0ah,'$'datas endsstacks segment stackdb  100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks
main   proc  far
start:push dsmov ax,0hpush axmov ax,datas          ;初始化dsmov ds,ax;输出输入一行字符lea dx,inputPromptmov ah,9int 21h;输入一行字符lea dx,STRING_maxLengthmov ah,10int 21h;输出换行lea dx,nextLinemov ah,9int 21h;mov dl,cl;call toBinaryPrintmov ch,STRING_Length   ;把字符串的长度移至chand cl,11011111b       ;初始化cl第5位为0;若字符串长度为0,直接输出clcmp ch,0 jz breakmov bx,0 s:mov al,STRING[bx]   ;将STRING中单元移至alcmp al,'0'          ;比较al与'0'的大小jl next              ;若al<'0',则跳转cmp al,'9'           ;否则,比较al与'9'的大小jg next              ;若al>'9',则跳转or cl,00100000b      ;否则,设置cl的第五位为1jmp break            ;跳出循环         next:add bx,type STRING   ;STRING索引移至下一个单元dec ch               ;计数器减1              cmp ch,0             ;比较ch与0ja s	               ;若ch>0,则循环继续break:;输出cl的二进制提示lea dx,outputPromptmov ah,9int 21h;输出clmov dl,cl    ;将cl移至dlcall toBinaryPrintretmain endptoBinaryPrint proc near;保存寄存器push dspush axpush cxpush dxpush bx;设置ds为cspush cspop ds;把目的数dl转换成二进制字符串mov cx,8                        ;设置循环次数mov bx,0                        ;设置binaryArray下标bin:shl dl,1                      ;左移一位jnc zero                      ;移除的位不为1(即0),跳转mov binaryArray[bx],'1'       ;若移除的位为1,则设置binaryArray[bx]为‘1’jmp next                      ;跳转至zero:mov binaryArray[bx],'0'       ;若移除的位为0,则设置binaryArray[bx]为‘0’next:add bx,type binaryArray       ;binaryArray数组下标移至下一个元素loop binmov binaryArray[bx],'b'       ;在二进制字符串后加上二进制单位mov binaryArray[bx+1],'$'     ;设置字符串的结束标志;输出目的数的二进制lea dx,binaryArraymov ah,9int 21h;恢复寄存器	pop bx pop dx	pop cxpop axpop dsretbinaryArray  db  16 dup(?)
toBinaryPrint endp
codes endsend main

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UnitOfWork知多少

1. 引言 Maintains a list of objects affected by a business transaction and coordinates the writing out of changes and the resolution of concurrency problems.Unit of Work --Martin Fowler Unit Of Work模式&#xff0c;由马丁大叔提出&#xff0c;是一种数据访问模…

表扬几位积极的同学!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”这几天太忙了&#xff0c;几天才回家一次&#xff0c;总有忙不完的活在干。4班这几天同学们表现还不错&#xff0c;布置的作业都能按时完成&#xff0c;课堂上也比较活跃&#xff0c;比…

中山纪念中学培训15天总结

比赛 2018/7/6-纪中某C组题【jzoj1192,jzoj1397,jzoj1736】 上来就集体爆零 2018/7/7-纪中某C组题【jzoj1494,jzoj1495,jzoj1496,jzoj1497】 还比较好 2018/7/8-纪中某C组题【jzoj1619,jzoj1620,jzoj1621,jzoj1622】 发现了dp方面的不足 2018/7/9-纪中某B组题【jzoj1503…

汇编语言(十五)之找出两个数组中的相同元素

找出两个数组中的相同元素&#xff0c;并且输出 程序运行&#xff1a; 代码&#xff1a; datas segmentA dw -1,-2, 3, 4, 5, 6, 7, 8, 9, 10,-11, 12, 13, 14, 15ACount dw ($-A)/2B dw -1, 2,-3, 4,-5, 6,-7, 8, 9,-10, 11,-12, 13,-14, 15,16,17,18,…

如何编写更好的SQL查询:终极指南-第一部分

结构化查询语言&#xff08;SQL&#xff09;是数据挖掘分析行业不可或缺的一项技能&#xff0c;总的来说&#xff0c;学习这个技能是比较容易的。对于SQL来说&#xff0c;编写查询语句只是第一步&#xff0c;确保查询语句高效并且适合于你的数据库操作工作&#xff0c;才是最重…

汇编语言(十六)之三数值求和

输入A、B、C三个数&#xff0c;如果存在一个数为0&#xff0c;则全部清零&#xff0c;否则求和输出 程序运行&#xff1a; 代码&#xff1a; datas segmentA dw 1B dw 0D dw 3S dw 0a_string db 0ffh, 0 ,100 dup(?)b_string db 0ffh, 0 ,100 dup(?…

回忆四班的那些事儿~

10“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”今天&#xff0c;谈谈四班的那些事儿吧~对于四班&#xff0c;回忆满满&#xff0c;根本忘却不了。和别的班一样&#xff0c;一个班内总有那么几个调皮捣蛋的孩子&#xff0c;只是四班…

C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码

本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 也只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的布局操作. 也就是针对某个平台…

汇编语言(十七)之判断三个数是否相等

输入三个数&#xff0c;计算相等数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmenta db 0ffh, 0 ,100 dup(?)b db 0ffh, 0 ,100 dup(?)d db 0ffh, 0 ,100 dup(?) ARRAY dw 1,2,2inputA db input a$inputB db 0dh,0ah,i…

你想象中的实习是什么样的?

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”今天感谢学长小李同学投稿的文章&#xff0c;在校外实习一年&#xff0c;可谓收获满满&#xff0c;下面就是李心焱同学的实习感悟&#xff0c;请欣赏&#xff01;实习…

汇编语言(十八)之求两个数的最大公约数

输入两个数&#xff0c;使用辗转相除法求最大公约数 程序运行&#xff1a; 代码&#xff1a; datas segmentM_max_len db 0ffhM_len db 0M_string db 100 dup(?)M dw 0 N_max_len db 0ffhN_len db 0N_string db…

Orleans—一些概念

这个文章聊一聊Orleans的概念.以下文章大部分翻译自官方教程,还有一些结合实际的应用经验,并对以前文章留下的坑进行填平.如果有哪个坑没有填,还请告诉我. Grain的生命周期: 一个Grain在逻辑上是永远存在的,并在逻辑上拥有一个不变的标识.程序的代码永远不会去创造或者销毁一个…

使用jdbc连接mysql数据库代码示例

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”最近&#xff0c;正好在看jdbc&#xff0c;于是就整理了一份增删改查的案例&#xff0c;记录记录&#xff0c;以备后用&#xff01;&#xff01;java编辑器&#xff1a;myeclipse![10]…

POJ1958-Strange Towers of Hanoi【递推】

正题 题目链接&#xff1a;http://poj.org/problem?id1958 大意 有4根柱子的汉诺塔&#xff0c;有n个盘&#xff0c;求移动次数 解题思路 首先我们定义只有三根柱子时有n个盘的话移动次数是dndn&#xff0c;然后dndn−1∗21dndn−1∗21定义有四根柱子时有n个盘移动次数为fn…

[上海站] 微软Azure AspNetCore微服务实战

活动介绍 2017官方发布了EshopOnContainers的微服务项目&#xff0c;其结合了.Net Core、Azure、Docker等众多优秀的技术&#xff0c;为开发者们抛砖引玉&#xff0c;走进微服务的大门。 本次分享&#xff0c;我们将结合实际毫无保留的从代码上解析微服务架构&#xff0c;以实…

汇编语言(十九)之删除数组中的元素

在数组中删除所有-1元素&#xff0c;然后输出删除后的长度 程序运行&#xff1a; 代码&#xff1a; datas segmentLink dw 15 ,1,2,3,4,5,6,-9,-1,3,4,5,3,-1,-2,3ouput db Link length:$ datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs…

Linux+.NetCore+Nginx搭建集群

本篇和大家分享的是LinuxNetCoreNginx搭建负载集群&#xff0c;对于netcore2.0发布后&#xff0c;我一直在看官网的文档并学习&#xff0c;关注有哪些新增的东西&#xff0c;我&#xff0c;一个从1.0到2.0的跟随者这里只总结一句话&#xff1a;2.0版本&#xff0c;api更多&…

老师 累了,我们 泪了!

“以下文章来自一位不愿意透露姓名的同学所写&#xff1a;”呀呼 “老穆头” 没错是我们的穆老师悄悄往我们班探了探头瞧了瞧我们&#xff0c; 我们依旧对他那么热情&#xff0c;紧随其后老佟往门口一站 教室里立马严肃起来 她是我们级部出了名没人敢惹的老佟&#xff08;佟老…

汇编语言(二十)之分类统计字符个数

输入一串字符串&#xff0c;分别统计英文字符&#xff0c;数字字符和其他字符的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentline_max_length db 0ffhline db 0, 100h dup(?)letter_count dw 0digit_count dw 0other_count …

.NET Core+Selenium+Github+Travis CI =amp;gt; SiteHistory

前言 总是三分钟热度的我折腾了一个可以每天自动截取指定网站页面并保存到Github的项目SiteHistory&#xff0c;感觉挺好(每次都这样 frameborder"0" scrolling"no" style"border-width: initial; border-style: none; width: 25px; height: 26px;&qu…