微机课程方案字符串分类统计_第1页
微机课程方案字符串分类统计_第2页
微机课程方案字符串分类统计_第3页
微机课程方案字符串分类统计_第4页
微机课程方案字符串分类统计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 微机原理 课程设计报告题 目:字符串分类统计 学生姓名: 周喜民学 号: 32专业班级:计0601同组姓名: 赵晏龙 陈顺指导教师:范轶彦设计时间:2018.1.4-2018.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 i

4、nput 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小则为小写字符,如果不是这三种情况则为其它字符。

5、注:DX存数字个数,BX存小写字母个数,DI存大写字母个数,BP存其它字符个数。<8).将数字个数、大写字母个数、小写字母个数、其它字符个数依次放入NUM区。<9).依次输出各字符: a.判断数字个数是否为0,如果为0则输出提示没有此类数据,否则输出数字个数以及有哪些数字。 b.判断大写字符个数是否为0,如果为0则输出提示没有此类数据,否则输出大写字符的个数以及输入的哪些大写字符。 c.判断小写字符个数是否为0,如果为0则输出提示没有此类数据,否则输出小写字符的个数以及输入的哪些小写字符。 d.判断其它字符个数是否为0,如果为0则输出提示没有此类数据,否则输出其它字符的个数以及输入

6、的哪些其它字符。<10).然后将程序跳到NEXTLAP继续执行,依次下去。三、系统总体框图四、调试分析本程序主要用于,把输入的一串字符分类统计,分别统计出数字、大写字符、小写字符和其他字符的个数。本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5,同时显示其他相应类字符为空。从键盘输入任意一个字符串,以回车作为结束符并显示,分别统计并显示出其中数字字符、大写字符、小写字符以及其它字符的个数。五、实验结果1)所有字符都有的时候:2)其中有字符类型缺少的时候:3)

7、什么字符都不输入的时候:六、程序设计shuchu MACRO 。定义宏,用来输出统计其它字符、数字、大小写 个数 LOCAL NEXTMOV AH,0MOV BL,10DIV BLMOV DL,ALMOV BH,AH 。将余数暂时存放在BH中CMP AL,0 JZ NEXTOR DL,30hMOV AH,2 INT 21HNEXT: MOV DL,BHOR DL,'0'。输出余数MOV AH,2 INT 21H dismsg CRLF 。回车换行 ENDMdismsg MACRO message 。输出字符串LEA DX,messageMOV AH,9 INT 21H ENDM

8、DATAS SEGMENTSTR DB'The input string is:$'STR1 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 othe

9、rchar is null!$'STR8 DB'The data of bigchar is null!$'STR9 DB'The data of smallchar is null!$'NUM2 DB'The number 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

10、9;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 DB 100 DUP(24H>,0AH,0DH,'$'SMALLCHAR DB 100 DUP(24H>,0AH,0DH,'$'OTHERCHAR DB

11、100 DUP(24H>,0AH,0DH,'$'TAIL DB?。用来存放其它字符的个数DATAS ENDSSTACKS SEGMENT STACK1 DW 100 DUP(24H> TOP LABEL WORDSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: AGAIN1: MOV AX,STACKSMOV SS,AX MOV SP,OFFSET TOPMOV AX,DATASMOV DS,AX dismsg STR1 。显示输入提示信息MOV AH,10 。输入字符串LEA DX,B

12、UF 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 21HINC SI LOOP ABC dismsg CRLF 。回车换行MOV CL,BUF+1 。将字符串的个数放入CLLEA SI,BUF+2 。取字符串的首地址MOV DX,0 。DX统计数字个数MOV BX,0 。BX统计小写字母个数MOV DI,0 。DI统计大写字母个数MOV BP,0 。BP统计其他字符的个数M

13、OV AH,0L1: MOV AL,SI CMP AL,30H JL NEXT1 CMP AL,39H JG L2PUSH AXINC DX 。统计数字字符的个数 JMP NEXTL2: CMP AL,41H 。统计大写字符的个数 JL NEXT1 CMP AL,5AH JG L3MOV BIGCHARDI,ALINC DI JMP NEXTL3: CMP AL,61H 。统计小写字符的个数 JL NEXT1CMP AL,7AH JG NEXT1MOV SMALLCHARBX,ALINC BX JMP NEXT NEXT1: MOV OTHERCHARBP,ALINC BP 。统计其它字符的个

14、数NEXT: INC SIDEC CL JNZ L1MOV NUM,DL 。将统计的个数存放在NUM的存储区MOV AX,DI 。数字个数放在NUM,大写字符个数放在NUM+1MOV NUM+1,AL 。小写字符个数放在NUM+2,其他字符的个数放在NUM+3MOV NUM+2,BLMOV AX,BPMOV TAIL,AL 。将其它字符的个数送入TAIL保存,以便后来输出(否则9号功能输出遇$则退出>MOV NUM+3,ALCMP NUM,0 。判断数字个数如果为0则输出提示符,否则循环输出 JZ NNULL dismsg STR2 。输出数字字符的提示符MOV CL,NUMMOV BP

15、,OFFSET TOPSUB BP,2OK: MOV DX,STACK1BPMOV AH,2 INT 21HSUB BP,2 LOOP OK dismsg CRLF dismsg NUM2 。输出数字字符数字的提示符MOV AL,NUM 。输出数字字符的个数 shuchu JMP NNULL1NNULL: dismsg STR6 NNULL1: dismsg CRLFCMP NUM+1,0 。判断大写字符的个数如果为0则输出提示符,否则以字符串形式输出 JZ BNULL dismsg STR3 。输出大写字符的提示符 dismsg BIGCHAR dismsg CRLF dismsg NUM3

16、 。输出大写字符数字个数提示符MOV AL,NUM+1 。输出大写字符的个数 shuchu JMP BNULL1BNULL: dismsg STR8BNULL1: dismsg CRLFCMP NUM+2,0 。判断小写个数,如果为0则输出提示符,否则以字符串形式输出 JZ SNULL dismsg STR4 。输出小写字符的提示符 dismsg SMALLCHAR dismsg CRLF dismsg NUM4 。输出小写字符数字个数的提示符MOV AL,NUM+2 。输出小写字符的个数 shuchu JMP SNULL1SNULL: dismsg STR9SNULL1: dismsg CR

17、LFCMP TAIL,0 。判断其他字符的个数如果为0则输出提示符,否则循环输出 JZ ONULL dismsg STR5 。输出其它字符的提示符MOV CL,TAILMOV SI,OFFSET OTHERCHARL4: 。输出其它字符MOV DL,SIMOV AH,2 INT 21HINC SI LOOP L4 dismsg CRLF dismsg NUM5 。输出其它字符个数的提示符MOV AL,NUM+3 。输出其它字符的个数 shuchu JMP AGAINONULL: dismsg STR7 JMP AGAINNEXTLAP: dismsg NUM7AGAIN: dismsg CRL

18、F dismsg NUM6MOV AH,01H INT 21HMOV BL,AL dismsg CRLFCMP BL,'Y' JZ AGAIN1CMP BL,'y' JZ AGAIN1ONULL2:MOV AH,4CH INT 21HCODES ENDSENDSTART七、总结微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教案过程

19、中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用工程。这次实验并不是很难,主要的困难来自对程序的理解。功夫不负有心人,经过四个人的合作和努力,我们最后对实验的原理有了清晰的认识。虽然实验台上的很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。这次课设却让我们对实验台有了足够的了解,让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论