版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、统计键盘输入字符和数字个数实验报告姓名:xx 学号:xxx 班级:xxx任课教师:xxx一、 实验目的1. 学习循环程序结构,掌握编写循环处理程序的方法和技巧。2. 通过循环结构程序熟悉汇编语言程序设计的主要方法。3. 了解和掌握程序设计过程中算法的选择。4. 掌握汇编语言的调试方法。二、 实验内容从键盘输入一系列字符(每种字符不超过9)并以回车符结束,统计出字母、数字及其它字符的个数,最后要在屏幕上显示计数结果。三、 实验程序设计思路Y输入字符X判断X=换行NN显示最后结果X >=0REST+YX <=9YNUMBER+X >=ANNREST+YX <= ZYCHAR
2、+X >= aNREST+X <= zNYYCHAR+REST+N设计思路如上图所示:图中NUMBER记录统计的数字的个数,CHAR记录统计的字符的个数,REST统计其他字符的个数。四、 实验结果分析输入:输入了12345asdASD-=输出如下:输出了NUMBER:5 CHAR:6 REST:2说明数字有5个,字符有6个,剩下的其他字符为2个五、 实验体会 通过本次实验学习并实践了循环程序,更深理解了跳转语句的用法和输入输出字符语句的用法,并且下次上机前要做准备,避免急躁。对本次试验的思考:此程序对某种类型的数最多只能显示9个,若统计个数超过九个时怎么办?对程序最后显示部分稍加修
3、改:以显示NUMBER为例子:EXIT:LEA DX,STR1MOV AH,09HINT 21HMOV AL,NUMBER ;将NUMBER送到AL中MOV AH,0;对应百位数字MOV BL,100 DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示最高位(余数在AL中(除以100的余数为最高位)ADD AL,30HMOV DL,ALINT 21HMOV AL,BL;对应十位数字MOV AH,0MOV BL,10DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示中间位(余数在AL中(除以10的余数为中间位)ADD AL,30HMOV DL,ALINT 21
4、HMOV DL,BL;对应个位数字ADD DL,30H MOV AH,2 ;显示个位INT 21H输入12345678901ABCDEFGHIJK=输出:原理:16位DIV除法和二号调用三位数被放到AL中,先是除以100得到百位数字,而后除以10得到十位数字,和余下的个位数字。被除数在AX中,商在AL中,余数在AH中 附件(实验代码,需要注释):DATA SEGMENTNUMBER DB 0 ;定义NUMBER为统计的数字个数CHAR DB 0 ;定义CHAR为统计的字符个数REST DB 0 ;定义REST为统计的其他字符个数STR1 DB 'NUMBER:','$&
5、#39; ;定义字符串,用来显示结果STR2 DB ' CHAR:','$'STR3 DB ' REST:','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXAGAIN: ;循环体MOV AH,1 ;输入字符INT 21HCMP AL,0DH ;判断输入的字符等不等于'换行'JZ EXIT ;若等于换行符,就跳到显示最后结果步骤CMP AL,'0' ;若不等于换行,和0比较JNL NEXT1 ;若字符 &
6、gt;= 0,跳到NEXT1INC REST ;否则,REST+JMP AGAIN ;跳回AGAIN,继续输入NEXT1:CMP AL,'9' ;若字符 <=9JBE N1 ;则跳到N1,实现NUMBER+CMP AL,65 ;否则比较字符和'A'JNL NEXT2 ;若字符 >= A,跳到NEXT2INC RESTJMP AGAINNEXT2:CMP AL,90 ;比较字符和'Z'JBE N2 ;若字符 <= Z,跳到N2CMP AL,97 ;否则比较字符和'a'JNL NEXT3 ;若字符 >=
7、9;a',则跳到NEXT3INC REST ;否则REST+JMP AGAIN ;继续循环NEXT3:CMP AL,122 ;比较字符和'z'JBE N2 ;若字符 <= z,跳到N2INC REST ;否则REST+JMP AGAIN ;继续循环N1: ;N1体INC NUMBER ;实现NUMBER+JMP AGAIN ;和继续循环N2: ;N2体INC CHAR ;实现CHAR+JMP AGAIN ;和继续循环EXIT: ;输出LEA DX,STR1 ;输出“NUMBER:”MOV AH,09HINT 21HMOV DL,NUMBER ADD DL,30H
8、;因为MOV AH,2是显示字符,所以要显示数字,则显示数字的ASCII码MOV AH,2 ;显示统计的数字个数INT 21HLEA DX,STR2 ;输出“ CHAR:”,为了美观,CHAR前面有一个空格MOV AH,09HINT 21HMOV DL,CHARADD DL,30H ;CHAR加上30H再显示MOV AH,2 ;显示统计字符个数INT 21HLEA DX,STR3 ;输出“ REST:”,为了美观,REST前面有一个空格MOV AH,09HINT 21HMOV DL,RESTADD DL,30H ;REST加上30H再显示MOV AH,2 ;显示统计的其他字符个数INT 21H
9、MOV AH,4CHINT 21HCODE ENDSEND START当统计数字超过9个时,改进的程序:DATA SEGMENTNUMBER DB 0CHAR DB 0REST DB 0STR1 DB 'NUMBER:','$'STR2 DB ' CHAR:','$'STR3 DB ' REST:','$'DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXAGAIN:MOV AH,1 ;输入字符INT 21HCM
10、P AL,0DH ;判断输入的字符等不等于'换行'JZ EXIT ;若等于换行符,就跳到显示最后结果步骤CMP AL,'0' ;若不等于换行,和0比较JNL NEXT1 ;若字符 >= 0,跳到NEXT1INC REST ;否则,REST+JMP AGAIN ;跳回AGAIN,继续输入NEXT1:CMP AL,'9' ;若字符 <=9JBE N1 ;则跳到N1,实现NUMBER+CMP AL,65 ;否则比较字符和'A'JNL NEXT2 ;若字符 >= A,跳到NEXT2INC RESTJMP AGAINNEX
11、T2:CMP AL,90 ;比较字符和'Z'JBE N2 ;若字符 <= Z,跳到N2CMP AL,97 ;否则比较字符和'a'JNL NEXT3 ;若字符 >= 'a',则跳到NEXT3INC REST ;否则REST+JMP AGAIN ;继续循环NEXT3:CMP AL,122 ;比较字符和'z'JBE N2 ;若字符 <= z,跳到N2INC RESTJMP AGAINN1:INC NUMBERJMP AGAINN2:INC CHARJMP AGAINEXIT:LEA DX,STR1MOV AH,09HI
12、NT 21HMOV AL,NUMBERMOV AH,0;对应百位数字MOV BL,100 DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示最高位(余数在AL中(除以100的余数为最高位)ADD AL,30HMOV DL,ALINT 21HMOV AL,BL;对应十位数字MOV AH,0MOV BL,10DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示中间位(余数在AL中(除以10的余数为中间位)ADD AL,30HMOV DL,ALINT 21HMOV DL,BL;对应个位数字ADD DL,30H MOV AH,2 ;显示个位INT 21HLEA DX,
13、STR2MOV AH,09HINT 21HMOV AL,CHARMOV AH,0;对应百位数字MOV BL,100 DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示最高位(余数在AL中(除以100的余数为最高位)ADD AL,30HMOV DL,ALINT 21HMOV AL,BL;对应十位数字MOV AH,0MOV BL,10DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示中间位(余数在AL中(除以10的余数为中间位)ADD AL,30HMOV DL,ALINT 21HMOV DL,BL;对应个位数字ADD DL,30H MOV AH,2 ;显示个位INT 21HLEA DX,STR3MOV AH,09HINT 21HMOV AL,RESTMOV AH,0;对应百位数字MOV BL,100 DIV BLMOV BL,AH ;商在AH中MOV AH,2 ;显示最高位(余数在AL中(除以100的余数为最高位)ADD AL,30HMOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 永宁县2025届数学四年级第一学期期中考试模拟试题含答案解析
- 永吉县2025届数学四年级第二学期期中统考试题(含解析)
- 2025-2026月考试卷八年级数学上学期期中模拟卷01(北师大版)(解析版)
- 解缙与明初书法
- 2026年新年啤酒促销活动策划案例
- 2026年班务工作计划幼儿园小班下学期
- 2026年初中数学学期教学工作计划
- 2026年高校校庆活动策划案例分享
- DBJ50-T-555-2026 建设工程造价咨询执业标准
- 2026年党建工作问题整改报告
- 2026年辽宁锦州海通实业有限公司计划招录28人备考题库完整答案详解
- 2025江苏苏州市相城城市建设投资(集团)有限公司人员招聘拟录用笔试历年参考题库附带答案详解
- 2026年惠州公务员考试题及答案
- 2025年成都市金牛区社区工作者招聘考试试题及答案解析
- 2026版《特种作业目录》深度解读
- 浙江湖州市自然资源发展有限公司招聘考试笔试试题
- 2026年北京市平谷区初三下学期二模物理试卷和答案
- 三年级下册《道德与法治》全册知识点(人教版)
- 《煤矿重大事故隐患判定标准》标准执行解读
- 2026年云南校长职级模拟题库附答案详解【综合卷】
- 酒店餐饮服务质量提升技巧培训资料
评论
0/150
提交评论