微机原理课程设计--字符串分类统计.doc
文本预览下载声明
微机原理 课程设计报告
题 目: 字符串分类统计
学生姓名: 周喜民
学 号: 32
专业班级: 计0601
同组姓名: 赵晏龙 陈顺
指导教师: 范轶彦
设计时间: 2010.1.4-2010.1.10
指导老师意见:
评定成绩: 签名: 日期: 目录
一、需求分析 2
二、系统设计 3
1. 内容 3
2.思路 3
三、系统总体框图 5
四、调试分析 6
五、实验结果 6
六、程序设计 7
七、总结 13
八、参考文献 14
一、需求分析
本程序主要用于,把输入的一串字符分类统计,分别统计出数字、大写字符、小写字符和其他字符的个数。
本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5,同时显示其他相应类字符为空。
程序接收用户键入的一行字符(字符长度不大于80个,以回车结束),并把字符,数字,其它字符分类计数,然后将结果存入以Letter,Digit,Other为名的存储单元中。 程序可采用0AH断将键入的字符直接送至键盘缓冲区,然后逐个取出分类计数。也可采用01H在接收字符后进行分类奇数在存入缓冲区。程序需要进入DEBUG看计数结果
二、系统设计
1.内容
从键盘输入任意一个字符串,以回车作为结束符并显示,分别统计并显示出其中数字字符、大写字符、小写字符以及其它字符的个数。
2.思路
(1).首先定义两个宏,一个用于输出统计各字符的个数,另一个用于输出字符串。
(2).在数据段中定义各种字符提示信息以便程序清晰明白。
(3).定义数据缓冲区用于存放输入的字符串,定义NUM区用于存放统计的大写字符、小写字符、数字以及其它字符的个数。定义OTHERCHAR、BIGCHAR、SMALLCHAR以及堆栈用于存放统计的相应字符保存,以便后来输出。
(4).首先调用DOS 10号功能用DX指定BUF区,将输入的字符串保存到BUF区中。
(5).将BUF+1的内容取出来,判断是否为0,如果为0表示没有输入任何字符,则程序跳到NEXTLAP(输出提示信息You do not input any string!),然后显示字符串(Do you want to input a string again(Y/N)?)然后调用DOS 1号功能获取您从键盘输入的数,判断是否为Y或y如果是则将程序跳到刚开始处重新执行,如果不是这两个字符则程序结束。
(6).如果输入了字符串,则调用DOS 2号功能将BUF里的内容输出来(2号功能可以输出$符号而9号功能遇到$符号就终止)。
(7).取字符出来进行比较统计,如果它比30H大且比39H小则为数字,如果比41H大且比5AH小则为大写字符,如果比61H大且比7AH小则为小写字符,如果不是这三种情况则为其它字符。
注:DX存数字个数,BX存小写字母个数,DI存大写字母个数,BP存其它字符个数。
(8).将数字个数、大写字母个数、小写字母个数、其它字符个数依次放入NUM区。
(9).依次输出各字符:
a.判断数字个数是否为0,如果为0则输出提示没有此类数据,否则输出数字个数以及有哪些数字。
b.判断大写字符个数是否为0,如果为0则输出提示没有此类数据,否则输出大写字符的个数以及输入的哪些大写字符。
c.判断小写字符个数是否为0,如果为0则输出提示没有此类数据,否则输出小写字符的个数以及输入的哪些小写字符。
d.判断其它字符个数是否为0,如果为0则输出提示没有此类数据,否则输出其它字符的个数以及输入的哪些其它字符。
(10).然后将程序跳到NEXTLAP继续执行,依次下去。
三、系统总体框图
四、调试分析
本程序主要用于,把输入的一串字符分类统计,分别统计出数字、大写字符、小写字符和其他字符的个数。本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5,同时显示其他相应类字符为空。
从键盘输入任意一个字符串,以回车作为结束符并显示,分别统计并显示出其中数字字符、大写字符、小写字符以及
显示全部