汇编实验 分类统计字符个数(debug中查看统计结果)
生活随笔
收集整理的这篇文章主要介绍了
汇编实验 分类统计字符个数(debug中查看统计结果)
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
2.3 分类统计字符个数
1.题目:分类统计字符个数
2.实验要求:
程序接收用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母,数字及其他字符分类计数,然后将结果存入以letter,digit和other为名的存储单元中。debug中查看结果。
; test5:classify and count the number of characters ;*************************************************************** dseg segment para 'data' letter dw 0digit dw 0other dw 0mess1 db 'Please input a string: ',13,10,'$' mess2 db 'Statistic completed',13,10,'$' strin label bytemax db 80act db ?str db 80 dup(?) ; dseg ends ;*************************************************************** cseg segment para 'code' ;----------------------------------------------------------------- main proc farassume cs:cseg,ds:dseg;set up stack for returnpush dssub ax,axpush ax ;mov ax,DSEGmov ds,ax start:mov letter,0mov digit,0mov other,0; ; ---------Input string:---------lea dx,mess1mov ah,09int 21hlea dx,strinmov ah,0ahint 21hcmp act,0je exitmov dl,13 ;crlfmov ah,02int 21hmov dl,10mov ah,02int 21h;;----------classify--------------mov al,actcbwmov cx,axmov bx,0;compare_and_classify:mov ah,str[bx]cmp ah,30hjl is_othercmp ah,39hjle is_a_digitcmp ah,41hjl is_othercmp ah,5ahjle is_a_lettercmp ah,61hjl is_othercmp ah,7ahjle is_a_letterjmp is_otheris_a_digit:inc digitjmp short change_addr is_a_letter:inc letterjmp short change_addr is_other:inc otherjmp short change_addrchange_addr:inc bxloop compare_and_classifylea dx,mess2mov ah,09int 21hret exit:ret main endp ;----------------------------------------------------------- cseg ends ;***********************************************************end main运行,先u,查看完整的汇编指令,然后先设置断点到达38处,使用g38,输入字符串后,然后再用g87,跳到循环统计完成之后的指令处,使用d0命令,发现,DS中最开始的三个字的内容已经得到了统计结果。
总结
以上是生活随笔为你收集整理的汇编实验 分类统计字符个数(debug中查看统计结果)的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 汇编中常用的DOS系统调用功能号
- 下一篇: 汇编实验注意点(待补充和更新)