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

输入一串字符串,分别统计英文字符,数字字符和其他字符的个数

程序运行:

 

代码:


datas segmentline_max_length    db 0ffhline               db  0, 100h  dup(?)letter_count       dw  0digit_count        dw  0other_count        dw  0input                     db 'input a line:$'output_letter_count       db 0dh,0ah,'letter count:$'output_digit_count        db 0dh,0ah,'digit count:$'output_other_count        db 0dh,0ah,'other count:$'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,inputmov ah,9int 21h;输入一行字符lea dx,line_max_lengthmov ah,10 int 21h ;对输入的一行字符进行统计mov cl,linexor ch,chmov si,1cmp cx,0         ;判断字符串的长度是否为0jz break          ;若为0,跳转s:mov al,line[si]cmp al,'0'             ;判断字符是否小于'0'jb other               ;若小于'0',则字符为其他字符cmp al,'9'             ;判断字符是否大于'9'ja letter_or_other     ;若大于'9',则字符为字母或其他字符inc digit_count        ;否则,字符为数字字符,数字记录器加1jmp next               ;跳转letter_or_other:and al,11011111b      ;将字符转为大写字符cmp al,'A'            ;判断字符是否大于'A'jb other               ;若小于,则字符是其他字符,跳转cmp al,'Z'            ;判断字符是否大于'Z'ja other               ;若大于,则字符为其他字符,跳转inc letter_count       ;否则,字符为字母字符,字母记录器加1jmp nextother:inc other_count         ;字符为其他字符,其他记录器加1 next:inc siloop sbreak:	 ;输出记录器的值lea dx,output_letter_countmov ah,9int 21h	mov ax,letter_countcall decimallea dx,output_digit_countmov ah,9int 21hmov ax,digit_countcall decimallea dx,output_other_countmov ah,9int 21hmov ax,other_countcall decimalretmain endpdecimal proc near push axpush cx push dxpush bx cmp ax,0jge no_negative mov bx,ax mov dl,'-'mov ah,2 int 21h neg bx mov ax,bx no_negative:mov cx,0mov bx,10 de:xor dx,dx div bx push dx inc cxcmp ax,0 jnz de de1:pop dxadd dl,30hmov ah,2 int 21hloop de1 pop bx pop dx pop cx pop ax ret decimal endp
codes endsend main

 

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

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

相关文章

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

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

汇编语言(二十一)之数值交换与自增

输入两个数,如果第一个数为偶数第二个数为奇数,互换位置;如果两个数都是奇数,则两个数都加一 程序运行: 代码: datas segmentA dw 0 B dw 0a_string db 0ffh, 0 ,100h dup(?)b_string …

2021 程序媛跳槽记:学习计划篇(已收获字节等offer)

今天推荐的这篇文章是一位互联网程序媛写的跳槽日记。她本硕毕业于985计算机专业,先后就职于央企和BAT。这一篇就是她跳槽到互联网的学习笔记,希望能对大家有所帮助,感兴趣的读者也可以关注公众号,听听更多程序媛的故事~ 坦白说&a…

Orleans的集群构建

听闻一周前,微软公布了.net core2.0,以及各种各样的其他core2.0.大家都很兴奋.微妈的诚意真是满满的.这次开源势头让我感觉到了微妈的技术实力之雄厚.我在这里祝福C#越来越好.细心的人似乎发现Orleans在github中是和net core分在一起的.Orleans的2.0何时发布呀… 现在我们面对…

汇编语言(二十二)之统计减去奇数的个数

输入一个正数,该数减去递增奇数(从1开始)直至小于等于零为止,计算该数减去奇数的个数 程序运行: 代码: datas segmentNUM dw 17ANS dw 0NUM_string db 0ffh, 0 ,100 dup(?)inputNUM …

.NET Core 在程序集中集成Razor视图

前言 有时候,我们在开发一个程序集供其他项目引用的时候,可能需要对外输出一些HTML的结构数据。 还有一些情况我们可能开发的是一个中间件,这个中间件需要提供一些界面来对外展示数据或者是内部的一些程序的运行信息,这个时候我…

开学一月,可以自己玩自己做的游戏了!!!

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”《趣味小游戏》的书已经讲完了,国庆假期给同学们布置了小游戏项目的任务,开学时检查了下,大部分做的还是挺不错的。有的同学超常发挥想象&#xff0…

汇编语言(二十三)之求一个数的补数

给定一个数,求该数的补数 程序运行: 代码: datas segmentNUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45HDB 67H,89H,0DEH,13H,24H,35H,46H,57HN DB $-NUMoutputNUM db "orignal data NUM$"outputNUMC d…

ASP.NET Core 防止跨站请求伪造(XSRF\/CSRF)攻击

什么是反伪造攻击? 跨站点请求伪造(也称为XSRF或CSRF,发音为see-surf)是对Web托管应用程序的攻击,因为恶意网站可能会影响客户端浏览器和浏览器信任网站之间的交互。这种攻击是完全有可能的,因为Web浏览器会自动在每…

汇编语言(二十四)之输出n行星号

输入一个数n,输出n行星号 程序运行: 代码: datas segmentline_number_max_len db 0ffhline_number db 0, 100h dup(?)input_line_number_prompt db input line number:$output db 0dh,0…

家的味道,家的感觉!!!

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”国庆期间回了一趟家,上次从家里出来还是2020年正月的时候,因为疫情的原因,21年过年没有回去……早早的就买下回家的票,以前回家一趟&…

POJ3889-Fractal Streets【分形,递归,分治】

正题 题目链接:http://poj.org/problem?id3889 大意 第一级城市为图一,然后每次扩展一级就将原本的城市复制3份,一份放上面,一份正旋90’放左上,一份逆序90’放左边,最后将4份的头和尾连起来,…

.NET Core 2将Visual Basic带到了Linux和macOS平台

Microsoft已经愈加接近将Visual Basic划为.NET Core平台上的一等公民。作为.NET Core 2发行版的一部分,VB开发者现在可以编写针对.NET Standard 2.0的控制台应用程序和类库,并且可以兼容多个平台。这就意味着运行在Windows上的可执行文件或者类库也能够运…

汇编语言(二十五)之成绩分段统计

已知一个班的成绩,进行60,70,80,90,100分段统计 程序运行: 代码: datas segmentstudents_number dw 10students dw 76,69,84,90,73,88,99,63,100,80s6 dw 0hs7 dw 0hs8 dw 0hs9 dw 0hs10 dw 0houtput…

感动哭了……

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”一大早就好多人送祝福,感动不已~下课看手机之后,看到手机上有条消息,是认识好多年好多年的大姐发的:“小穆,今天你生日&…

汇编语言(二十六)之自然数求和

输入一个数N,对1到N的所有自然数求和 程序运行: 代码: datas segmentN_string_max_length db 0ffhN_string db 0, 100h dup(?)N dw 0 sum dd 0 input db …

同学们,看看这里吧!!!

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。恶”早上一进班,发现班内少了好几个学生,一想肯定是这几个熊孩子又违纪被王老师喊去了…自从这些孩子入学以来,大事小事不断的去犯,尤其是…

Oleans集群之Consul再解释

由于上周发文章的时候,我正要打算出门,所以就把写好的全部发出去了,有点仓促,虽然写了主线,但是这里还是需要再次解释一下. 我看到Orleans已经升级到了1.5.1了,(nuget上的官方发布),于是我就把Orleans升级到了1.5.1,顺便把net更改到了4.7版本. 再升级的时候,注意有几个依赖库…

别在被骗了!!!!!!

“大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。”今天,在身边又发生了一起诈骗案,被骗金额达5000余元在,就像佟老师说的一样,骗子可是一点人性都没有……大致的看了看具体细节&#xff0…

汇编语言(二十七)之身份证最后一位求和校验

输入身份证前十七位数字,输入18位身份证 程序运行: 代码: datas segmentw db 7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2y db 1,0,X,9,8,7,6,5,4,3,2ID_max_length db 18ID db 0, 19 dup(?)input …