- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
统计键盘输入字符和数字个数实验报告
姓名:xx 学号:xxx 班级:xxx
任课教师:xxx
实验目的
学习循环程序结构,掌握编写循环处理程序的方法和技巧。
通过循环结构程序熟悉汇编语言程序设计的主要方法。
了解和掌握程序设计过程中算法的选择。
掌握汇编语言的调试方法。
实验内容
从键盘输入一系列字符(每种字符不超过9)并以回车符结束,统计出字母、数字及其它字符的个数,最后要在屏幕上显示计数结果。
实验程序设计思路
Y输入字符X判断X==‘换行’
Y
输入字符X
判断X==‘换行’
NN显示最后结果
N
N
显示最后结果
X =‘0’REST++YX =‘9’YNUMBER+++X =‘A’NNREST++YX = ‘Z’YCHAR++X = ‘a’NREST++X = ‘z’NYYCHAR++REST++N
X =‘0’
REST++
Y
X =‘9’
Y
NUMBER+++
X =‘A’
N
N
REST++
Y
X = ‘Z’
Y
CHAR++
X = ‘a’
N
REST++
X = ‘z’
N
Y
Y
CHAR++
REST++
N
设计思路如上图所示:图中NUMBER记录统计的数字的个数,CHAR记录统计的字符的个数,REST统计其他字符的个数。
实验结果分析
输入:
输入了12345asdASD-=
输出如下:
输出了NUMBER:5 CHAR:6 REST:2
说明数字有5个,字符有6个,剩下的其他字符为2个
实验体会
通过本次实验学习并实践了循环程序,更深理解了跳转语句的用法和输入输出字符语句的用法,并且下次上机前要做准备,避免急躁。
对本次试验的思考:此程序对某种类型的数最多只能显示9个,若统计个数超过九个时怎么办?对程序最后显示部分稍加修改:
以显示NUMBER为例子:
EXIT:
LEA DX,STR1
MOV AH,09H
INT 21H
MOV AL,NUMBER ;将NUMBER送到AL中
MOV AH,0;对应百位数字
MOV BL,100
DIV BL
MOV BL,AH ;商在AH中
MOV AH,2 ;显示最高位(余数在AL中(除以100的余数为最高位))
ADD AL,30H
MOV DL,AL
INT 21H
MOV AL,BL;对应十位数字
MOV AH,0
MOV BL,10
DIV BL
MOV BL,AH ;商在AH中
MOV AH,2 ;显示中间位(余数在AL中(除以10的余数为中间位))
ADD AL,30H
MOV DL,AL
INT 21H
MOV DL,BL;对应个位数字
ADD DL,30H
MOV AH,2 ;显示个位
INT 21H
输入12345678901ABCDEFGHIJK==
输出:
原理:
16位DIV除法和二号调用
三位数被放到AL中,先是除以100得到百位数字,而后除以10得到十位数字,和余下的个位数字。
被除数在AX中,商在AL中,余数在AH中
附件(实验代码,需要注释):
DATA SEGMENT
NUMBER DB 0 ;定义NUMBER为统计的数字个数
CHAR DB 0 ;定义CHAR为统计的字符个数
REST DB 0 ;定义REST为统计的其他字符个数
STR1 DB NUMBER:,$ ;定义字符串,用来显示结果
STR2 DB CHAR:,$
STR3 DB REST:,$
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
AGAIN: ;循环体
MOV AH,1 ;输入字符
INT 21H
CMP AL,0DH ;判断输入的字符等不等于换行
JZ EXIT ;若等于换行符,就跳到显示最后结果步骤
CMP AL,0 ;若不等于‘换行’,和‘0’比较
JNL NEXT1 ;若字符 = ‘0’,跳到NEXT1
INC REST ;否则,REST++
JMP AGAIN ;跳回AGAIN,继续输入
NEXT1:
CMP AL,9 ;若字符 =‘9’
JBE N1 ;则跳到N1,实现NUMBER++
CMP AL,65 ;否则比较字符和A
JNL NEXT2 ;若字符 = ‘A’,跳到NEXT2
INC REST
JMP AGAIN
NEXT2:
CMP AL,90 ;比较字符和Z
JBE N2 ;若字符 = ‘Z’,跳到N2
CMP AL,97 ;否则比较字符和a
JNL NEXT3 ;若字符 = a,则跳到NEXT3
INC RES
您可能关注的文档
最近下载
- 通风防排是烟工程合同.doc VIP
- 不同层级护士核心能力的培养.pptx VIP
- 微型计算机原理与接口技术第二版邹逢兴部分习题答案.doc VIP
- 幼儿园课件::认识少数民族.pptx VIP
- DELIXI德力西CJX2s说明书.pdf
- YV100XG机器FAMF校正培训教材.docx VIP
- 2025至2030中国硫酸钙晶须行业市场发展现状及竞争格局与投资发展报告.docx
- (高清版)DB62∕T 3237-2023 建筑钢结构防火技术标准.docx VIP
- (四检)厦门市2025届高三第四次质量检测 生物试卷(含答案).docx
- 2025年220KV输电线路施工组织措施及施工方案1.pdf VIP
原创力文档


文档评论(0)