微机原理课程设计-字符串分类统计

上传人:cl****1 文档编号:456865269 上传时间:2023-09-26 格式:DOC 页数:13 大小:174.05KB
返回 下载 相关 举报
微机原理课程设计-字符串分类统计_第1页
第1页 / 共13页
微机原理课程设计-字符串分类统计_第2页
第2页 / 共13页
微机原理课程设计-字符串分类统计_第3页
第3页 / 共13页
微机原理课程设计-字符串分类统计_第4页
第4页 / 共13页
微机原理课程设计-字符串分类统计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《微机原理课程设计-字符串分类统计》由会员分享,可在线阅读,更多相关《微机原理课程设计-字符串分类统计(13页珍藏版)》请在金锄头文库上搜索。

1、 微机原理 课程设计报告题 目: 字符串分类统计 学生姓名: 周喜民 学 号: 32 专业班级: 计0601 同组姓名: 赵晏龙 陈顺 指导教师: 范轶彦 设计时间: 2010.1.4-2010.1.10 指导老师意见:评定成绩: 签名: 日期:目录一、需求分析2二、系统设计31. 内容32思路3三、系统总体框图5四、调试分析6五、实验结果6六、程序设计7七、总结13八、参考文献14一、需求分析 本程序主要用于,把输入的一串字符分类统计,分别统计出数字、大写字符、小写字符和其他字符的个数。本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输

2、入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5,同时显示其他相应类字符为空。 程序接收用户键入的一行字符(字符长度不大于80个,以回车结束),并把字符,数字,其它字符分类计数,然后将结果存入以Letter,Digit,Other为名的存储单元中。 程序可采用0AH断将键入的字符直接送至键盘缓冲区,然后逐个取出分类计数。也可采用01H在接收字符后进行分类奇数在存入缓冲区。程序需要进入DEBUG看计数结果二、系统设计1.内容从键盘输入任意一个字符串,以回车作为结束符并显示,分别统计并显示出其中数字字符、大写字符、小写字符以及其它字符的个数。2思路(1).首先定义两个宏,

3、一个用于输出统计各字符的个数,另一个用于输出字符串。(2).在数据段中定义各种字符提示信息以便程序清晰明白。(3).定义数据缓冲区用于存放输入的字符串,定义NUM区用于存放统计的大写字符、小写字符、数字以及其它字符的个数。定义OTHERCHAR、BIGCHAR、SMALLCHAR以及堆栈用于存放统计的相应字符保存,以便后来输出。(4).首先调用DOS 10号功能用DX指定BUF区,将输入的字符串保存到BUF区中。(5).将BUF+1的内容取出来,判断是否为0,如果为0表示没有输入任何字符,则程序跳到NEXTLAP(输出提示信息You do not input any string!),然后显示

4、字符串(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存其它字符

5、个数。(8).将数字个数、大写字母个数、小写字母个数、其它字符个数依次放入NUM区。(9).依次输出各字符: a.判断数字个数是否为0,如果为0则输出提示没有此类数据,否则输出数字个数以及有哪些数字。 b.判断大写字符个数是否为0,如果为0则输出提示没有此类数据,否则输出大写字符的个数以及输入的哪些大写字符。 c.判断小写字符个数是否为0,如果为0则输出提示没有此类数据,否则输出小写字符的个数以及输入的哪些小写字符。 d.判断其它字符个数是否为0,如果为0则输出提示没有此类数据,否则输出其它字符的个数以及输入的哪些其它字符。(10).然后将程序跳到NEXTLAP继续执行,依次下去。三、系统总体

6、框图四、调试分析本程序主要用于,把输入的一串字符分类统计,分别统计出数字、大写字符、小写字符和其他字符的个数。本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5,同时显示其他相应类字符为空。从键盘输入任意一个字符串,以回车作为结束符并显示,分别统计并显示出其中数字字符、大写字符、小写字符以及其它字符的个数。五、实验结果1)所有字符都有的时候:2)其中有字符类型缺少的时候:3)什么字符都不输入的时候:六、程序设计shuchu MACRO ;定义宏,用来输出统计其它字符

7、、数字、大小写 个数 LOCAL NEXT MOV AH,0 MOV BL,10 DIV BL MOV DL,AL MOV BH,AH ;将余数暂时存放在BH中 CMP AL,0 JZ NEXT OR DL,30h MOV AH,2 INT 21HNEXT: MOV DL,BH OR DL,0 ;输出余数 MOV AH,2 INT 21H dismsg CRLF ;回车换行 ENDM dismsg MACRO message ;输出字符串 LEA DX,message MOV AH,9 INT 21H ENDMDATAS SEGMENTSTR DB The input string is:$S

8、TR1 DB Please input a string:$STR2 DB The integer is:$STR3 DB The bigchar is:$STR4 DB The smallchar is:$STR5 DB The otherchar is:$ STR6 DB The date of integer is null!$STR7 DB The date of otherchar is null!$STR8 DB The data of bigchar is null!$STR9 DB The data of smallchar is null!$NUM2 DB The numbe

9、r of integer is:$NUM3 DB The number of bigchar is:$NUM4 DB The number of smallchar is:$NUM5 DB The number of otherchar is:$ NUM6 DB Do you want to input a string again?(Y/N):$NUM7 DB You do not input any string!$BUF DB 100 ;定义缓冲区用来存放输入的字符串 DB ? DB 100 DUP (24H)CRLF DB 0AH,0DH,$NUM DB 4 DUP(?)BIGCHAR

10、 DB 100 DUP(24H),0AH,0DH,$SMALLCHAR DB 100 DUP(24H),0AH,0DH,$OTHERCHAR DB 100 DUP(24H),0AH,0DH,$TAIL DB ? ;用来存放其它字符的个数DATAS ENDSSTACKS SEGMENT STACK1 DW 100 DUP(24H) TOP LABEL WORDSTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: AGAIN1: MOV AX,STACKS MOV SS,AX MOV SP,OFFSET TOP MOV

11、AX,DATAS MOV DS,AX dismsg STR1 ;显示输入提示信息 MOV AH,10 ;输入字符串 LEA DX,BUF INT 21H dismsg CRLF ;回车换行 CMP BUF+1,0 JZ NEXTLAP dismsg STR ;提示输入字符串 MOV CL,BUF+1 LEA SI,BUF+2ABC: MOV DL,SI ;用于输出缓冲区里的输入字符串 MOV AH,2 INT 21H INC SI LOOP ABC dismsg CRLF ;回车换行 MOV CL,BUF+1 ;将字符串的个数放入CL LEA SI,BUF+2 ;取字符串的首地址 MOV DX

12、,0 ;DX统计数字个数 MOV BX,0 ;BX统计小写字母个数 MOV DI,0 ;DI统计大写字母个数 MOV BP,0 ;BP统计其他字符的个数 MOV AH,0L1: MOV AL,SI CMP AL,30H JL NEXT1 CMP AL,39H JG L2 PUSH AX INC DX ;统计数字字符的个数 JMP NEXT L2: CMP AL,41H ;统计大写字符的个数 JL NEXT1 CMP AL,5AH JG L3 MOV BIGCHARDI,AL INC DI JMP NEXT L3: CMP AL,61H ;统计小写字符的个数 JL NEXT1 CMP AL,7AH JG NEXT1 MOV SMALLCHARBX,AL INC BX JMP

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号