统计键盘输入字符、数字个数”.docx
- 文档编号:161866
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:4
- 大小:47.23KB
统计键盘输入字符、数字个数”.docx
《统计键盘输入字符、数字个数”.docx》由会员分享,可在线阅读,更多相关《统计键盘输入字符、数字个数”.docx(4页珍藏版)》请在冰豆网上搜索。
“统计键盘输入字符、数字个数”
实验报告
一、实验目的
1、学习循环程序结构,掌握编写循环处理程序的方法和技巧。
2、通过循环结构程序熟悉汇编语言程序设计的主要方法。
3、了解和掌握程序设计过程中算法的选择。
4、掌握汇编语言的调试方法。
二、实验内容
从键盘输入一系列字符(每种字符不超过9)并以回车符结束,请统计出字母、数字及其它字符的个数,最后在屏幕上显示计数结果。
三、实验过程
1、编写程序,后附程序代码
2、测试程序
输入四组不同的测试字符串,得到NUMBER值为数字个数,CHAR值为字母个数,REST为符号个数。
三、结果分析和思考
结果分析:
由测试中可以看出,三种字符显示的个数范围是0~9,大于9之后的就会显示个数的数值加30H之后的数值对应的ASCII码值,这是因为显示个数的时候,我的思路是将个数分别存储在NUMBER,CHAR,REST中,然后显示它们的值加30H后所对应的ASCII码值,因此如果想要显示两位数、三位数的数值,就要在最后输出的时候改变输出的方法,将两位数、三位数的数值输出。
改进思路:
先将前面程序计算出的个数三位数放到AL中,然后调用除法指令DIV除以100得到百位数字,而后除以10得到十位数字,和余下的个位数字。
就可以得到000~999显示范围的字符个数。
在调用除法的过程中,被除数在AX中,商在AL中,余数在AH中
以数字个数NUMBER为例:
MOVAL,NUMBER将NUMBER送到AL
MOV AH,0;对应百位
MOVBL100
DIVBL
MOVBL,AH;余数在AH
MOV AH,2 ;显示最高位(除以100的余数为最高位,存在AH中)
ADD AL,30H
MOV DL,AL
INT 21H
MOVAL,BL;对应十位
MOVAH,0
MOVBL,10
DIVBL
MOVBL,AH;余数在AH
MOVAH,2;显示中间位(除以10的余数为中间位,存在AH中)
ADDAL,30H
MOVDL,AL
INT21H
MOVDL,BL;对应个位数字
ADDDL,30H
MOVAH,2;显示个位
INT21H
四、代码
DSEGSEGMENT
NUMBERDB0 ;存储数字个数
CHARDB0 ;字母个数
RESTDB0 ;字符个数
STR1DB'NUMBER:
','$';输出提示”NUMBER:
”
STR2DB'CHAR:
','$' ;输出提示”CHAR:
”
STR3DB'REST:
','$' ;输出提示”REST:
”
DSEGENDS
CSEGSEGMENT
ASSUMECS:
CSEG,DS:
DSEG
START:
MOVAX,DSEG
MOVDS,AX
AGAIN:
MOVAH,1
INT21H
CMPAL,0DH;判断字符是否为回车
JZEXIT;是回车,跳转到结束语句
CMPAL,'0';不是回车,判断是否大于’0’
JNLNEXT1;大于‘0’,跳转到NEXT1
INCREST ;小于’0’,是字符,REST自增1
JMPAGAIN;AGAIN循环
NEXT1:
CMPAL,'9';判断是否小于’9’
JBEN1 ;小于9,是数字,跳转到N1
CMPAL,65;大于9,不是数字,跟’a’比较
JNLNEXT2;大于’a’,跳转到NEXT2
INCREST;小于’a’,是字符,REST自增1
JMPAGAIN;返回循环
NEXT2:
CMPAL,90;跟’z’作比较
JBEN2;小于’z’,是字母,跳转到N2
CMPAL,97;大于’z’,跟‘A’比较
JNLNEXT3;大于’A’跳转到NEST3
INCREST;大于’z’,小于‘A’,是字符,REST自增1
JMPAGAIN;返回循环
NEXT3:
CMPAL,122;跟’Z’比较
JBEN2 ;小于’Z’,是大写字母,跳转到N2
INCREST;不是字母,是字符,REST自增1
JMPAGAIN;返回循环
N1:
INCNUMBER;判断为数字,NUMBER自增1
JMPAGAIN ;返回循环
N2:
INCCHAR;判断为字母,CHAR自增1
JMPAGAIN;返回循环
EXIT:
LEADX,STR1
MOVAH,09H
INT21H ;显示提示“NUMBER:
”
MOVDL,NUMBER ;NUMBER送到DL
ADDDL,30H
MOVAH,2
INT21H ;显示NUMBER的值
LEADX,STR2
MOVAH,09H
INT21H ;显示提示“CHAR:
”
MOVDL,CHAR ;CHAR送到DL
ADDDL,30H
MOVAH,2
INT21H ;显示CHAR的值
LEADX,STR3
MOVAH,09H
INT21H ;显示提示”REST:
”
MOVDL,REST ;REST送到DL
ADDDL,30H
MOVAH,2
INT21H ;显示REST的值
MOVAH,4CH
INT21H ;程序结束
CSEGENDS
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 统计 键盘输入 字符 数字 个数