统计键盘输入字符、数字个数”.doc

统计键盘输入字符、数字个数”.doc

ID:55612088

大小:51.00 KB

页数:4页

时间:2020-05-19

统计键盘输入字符、数字个数”.doc_第1页
统计键盘输入字符、数字个数”.doc_第2页
统计键盘输入字符、数字个数”.doc_第3页
统计键盘输入字符、数字个数”.doc_第4页
资源描述:

《统计键盘输入字符、数字个数”.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、“统计键盘输入字符、数字个数”实验报告一、实验目的1、学习循环程序结构,掌握编写循环处理程序的方法和技巧。2、通过循环结构程序熟悉汇编语言程序设计的主要方法。3、了解和掌握程序设计过程中算法的选择。4、掌握汇编语言的调试方法。二、实验内容从键盘输入一系列字符(每种字符不超过9)并以回车符结束,请统计出字母、数字及其它字符的个数,最后在屏幕上显示计数结果。三、实验过程1、编写程序,后附程序代码2、测试程序输入四组不同的测试字符串,得到NUMBER值为数字个数,CHAR值为字母个数,REST为符号个数。三、结果分析和思考结果分析:由测试中可以看出,三种字符显示的个数范围是0~9,

2、大于9之后的就会显示个数的数值加30H之后的数值对应的ASCII码值,这是因为显示个数的时候,我的思路是将个数分别存储在NUMBER,CHAR,REST中,然后显示它们的值加30H后所对应的ASCII码值,因此如果想要显示两位数、三位数的数值,就要在最后输出的时候改变输出的方法,将两位数、三位数的数值输出。改进思路:先将前面程序计算出的个数三位数放到AL中,然后调用除法指令DIV除以100得到百位数字,而后除以10得到十位数字,和余下的个位数字。就可以得到000~999显示范围的字符个数。在调用除法的过程中,被除数在AX中,商在AL中,余数在AH中以数字个数NUMBER为例:

3、MOVAL,NUMBER将NUMBER送到ALMOV AH,0;对应百位MOVBL100DIVBLMOVBL,AH;余数在AHMOV AH,2    ;显示最高位(除以100的余数为最高位,存在AH中)ADD AL,30H MOV DL,AL INT 21HMOVAL,BL;对应十位MOVAH,0MOVBL,10DIVBLMOVBL,AH;余数在AHMOVAH,2;显示中间位(除以10的余数为中间位,存在AH中)ADDAL,30HMOVDL,ALINT21HMOVDL,BL;对应个位数字ADDDL,30HMOVAH,2;显示个位INT21H四、代码DSEGSEGMENTNUM

4、BERDB0;存储数字个数CHARDB0;字母个数RESTDB0;字符个数STR1DB'NUMBER:','$';输出提示”NUMBER:”STR2DB'CHAR:','$';输出提示”CHAR:”STR3DB'REST:','$';输出提示”REST:”DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXAGAIN:MOVAH,1INT21HCMPAL,0DH;判断字符是否为回车JZEXIT;是回车,跳转到结束语句CMPAL,'0';不是回车,判断是否大于’0’JNLNEXT1;大于‘0’,跳转到N

5、EXT1INCREST;小于’0’,是字符,REST自增1JMPAGAIN;AGAIN循环NEXT1:CMPAL,'9';判断是否小于’9’JBEN1;小于9,是数字,跳转到N1CMPAL,65;大于9,不是数字,跟’a’比较JNLNEXT2;大于’a’,跳转到NEXT2INCREST;小于’a’,是字符,REST自增1JMPAGAIN;返回循环NEXT2:CMPAL,90;跟’z’作比较JBEN2;小于’z’,是字母,跳转到N2CMPAL,97;大于’z’,跟‘A’比较JNLNEXT3;大于’A’跳转到NEST3INCREST;大于’z’,小于‘A’,是字符,REST自增1

6、JMPAGAIN;返回循环NEXT3:CMPAL,122;跟’Z’比较JBEN2;小于’Z’,是大写字母,跳转到N2INCREST;不是字母,是字符,REST自增1JMPAGAIN;返回循环N1:INCNUMBER;判断为数字,NUMBER自增1JMPAGAIN;返回循环N2:INCCHAR;判断为字母,CHAR自增1JMPAGAIN;返回循环EXIT:LEADX,STR1MOVAH,09HINT21H;显示提示“NUMBER:”MOVDL,NUMBER;NUMBER送到DLADDDL,30HMOVAH,2INT21H;显示NUMBER的值LEADX,STR2MOVAH,09

7、HINT21H;显示提示“CHAR:”MOVDL,CHAR;CHAR送到DLADDDL,30HMOVAH,2INT21H;显示CHAR的值LEADX,STR3MOVAH,09HINT21H;显示提示”REST:”MOVDL,REST;REST送到DLADDDL,30HMOVAH,2INT21H;显示REST的值MOVAH,4CHINT21H;程序结束CSEGENDSENDSTART

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。