版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机原理与汇编语言设计报告题 目: 用汇编语言编写一个程序,在屏幕上接收一串带数字、字母及其它字符的字符串,然后统计其中数字、字母、单词的个数,并显示出来 专 业: 物联网工程 班 级: 学 号: 姓 名: 指导教师: 日 期: 2014年3月11日 目录1 课程设计的题目课程设计题目:用汇编语言编写一个程序,在屏幕上接收一串带数字、字母及其它字符的字符串,然后统计其中数字、字母、单词的个数,并显示出来2 设计目的设计目的:学习用汇编语言编写设计分支循环程序3 设计思路设计思路:通过循环比较输入的值,最后显示出相应十进制的比较结果。解决方案:分支循环4 设计原理设计原理:通过分支程序设计实现
2、字母、数字及其它字符的分类统计计数。5 设计内容具体内容(1) 定义数据结构单个字符的输入、字符串的输出、结果数字的输出。分类主要是数字:09,字母AZ 和az ,其它。对应的ASCII码为 30H39H, 41H5AH, 61H7AH,.(2) 程序实现start: MOV AX,DATAS MOV DS,AX LEA DX,STRING1 ;显示输入提示信息Please input a string,LEA取指功能实现。 MOV AH,09H ;09H为字符串输出 INT 21H ;中断调用,INT 21H 中断为DOS中断 MOV CX,100 ;设置循环次数足够大,CX用来保存循环指令
3、 L1:MOV AH,01H ;中断调用,单字符输入,01H带回显的键盘输入, INT 21H ;输入符号的ASCII代码在AL寄存器中。(3) 程序要求程序接受用户键入的一行字符(字符个数不超过80个,该字符串用回车符结束),并按字母、数字及其它字符分类计数,然后将结果存入以letter、digit和other为名的存储单元中6 实现步骤1. 实现步骤:先输入任意的字符、数字、其他。之后按Enter键,分别显示出输入字符的数量、数字的数量、其他的数量,都按十进制显示出来。2. 程序代码: DATAS SEGMENT STRING1 DB'Please input a string:$
4、' ;输入提示信息 STRING2 DB'Number of chars:$ '各类字符提示信息 STRING3 DB'Number of digits:$' STRING4 DB'Number of others:$' CHARS DB 0 ;字母 DIGIT DB 0 ;数字 OTHERS DB 0 ;其他DATAS ENDSSTACKS SEGMENT ;此处输入堆栈段代码STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSstart: MOV AX,DATAS MO
5、V DS,AX LEA DX,STRING1 ;显示输入提示信息Please input a string,LEA取指功能实现。 MOV AH,09H ;09H为字符串输出 INT 21H ;中断调用,INT 21H 中断为DOS中断 MOV CX,100 ;设置循环次数足够大,CX用来保存循环指令 L1:MOV AH,01H ;中断调用,单字符输入,01H带回显的键盘输入, INT 21H ;输入符号的ASCII代码在AL寄存器中。 CMP AL,0DH ;若输入回车符则结束,CMP比较指令。 如果为数字:30H-39H JZ OVER2 ;JZ条件转移指令,根据ZF进位转移 CMP AL,
6、30H ;若<30H(0),OTHERS+ JB OTHER ;JB条件转移指令,为低于不高于指令。 CMP AL,39H ;若>39H(9),跳转进一步比较 JA HIGHER1 ;JA条件转移指令。为高于/不低于指令。 JMP DIGITAL ;DIGIT+,JMP无条件转移指令, HIGHER1:CMP AL,41H ;若IF<41H(A),OTHERS+ 如果为大写字母“A-Z”字符:41H-5AH JB OTHER CMP AL,5AH ;若IF>5AH(Z),跳转继续比较 JA HIGHER2 JMP CHAR ;ALPHAU+ HIGHER2:CMP AL
7、,61H ;若IF<61H(a),OTHERS+ 如果为小写字母字符“a-z”字符:61H-7AH JB OTHER CMP AL,7AH ;若IF>7AH(z),OTHERS+ JA OTHER JMP CHAR ;ALPHAU+ JMP OVER ;比较结束 OTHER: INC OTHERS ;OTHERS+ 如果不满足以上三个条件的就按照其他字符个数直接输出 JMP OVER ;比较结束CHAR: INC CHARS ;ALPHAL+ JMP OVER ;比较结束DIGITAL:INC DIGIT ;DIGIT+ JMP OVER ;比较结束 JMP OVER ;比较结束
8、OVER:NOPLOOP L1 ;循环,输入下一字符OVER2:CALL ENDLINE ;回车换行 LEA DX,STRING2 ;字符串的输出Number of chars MOV AH,09H ;09H为字符串输出 INT 21H ;中断调用,INT 21H 中断为DOS中断 XOR AX,AX MOV AL,CHARS ;将统计的数字送AX CALL DISPLAY ;调用输出两位数字的子程序 CALL ENDLINE LEA DX,STRING3 ;字符串的输出Number of digits MOV AH,09H ;09H为字符串输出 INT 21H ;中断调用,INT 21H 中
9、断为DOS中断 XOR AX,AX MOV AL,DIGIT ;将统计的数字送AX CALL DISPLAY ;调用输出两位数字的子程序 CALL ENDLINE LEA DX,STRING4 ;字符串的输出Number of others MOV AH,09H ;09H为字符串输出 INT 21H XOR AX,AX MOV AL,OTHERS ;将统计的数字送AX CALL DISPLAY ;调用输出两位数字的子程序 MOV AH,4CH ; 4CH带返回码结束 INT 21H ENDLINE PROC NEAR;控制输出格式,输出回车换行子程序 MOV AH,02H MOV DL,0AH
10、 ;0AH键盘输入至缓冲区 INT 21H ;输出换行符 MOV AH,02H MOV DL,0DH ;0DH键盘复位。 INT 21H ;输出回车符 RET ENDLINE ENDP DISPLAY PROC NEAR;输出两位数字的子程序(输出两位数字为十进制) MOV BL,10 DIV BL ;AX/BL,AL=商,AH余数 PUSH AX ;保存AX中的信息 MOV DL,AL ADD DL,30H MOV AH,02H ;显示一个字符 INT 21H ;输出十位数 POP AX ;出栈送AX MOV DL,AH ADD DL,30H MOV AH,02H ;显示一个字符 INT 21H ;输出个位数 RET DISPLAY ENDP CODES ENDS END START7 最终结果显示 结果显示:八总结 通过对本次汇编语言的课程设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园文化建设的策略与实践案例
- 2025年度电子加油卡定制化充值优惠方案合同
- 2025年度豪华别墅购买协议书分期付款及配套设施合同
- 2025年度银行贷款反担保合同履行监督合同
- 2025年度道路工程施工安全责任合同
- 2025年度商铺转租合同附带租赁区域品牌推广服务
- 2025年度货车司机劳动合同(附带物流配送服务协议)
- 2025年度销售团队激励机制及考核标准劳动合同补充协议
- 2025年度农家乐项目承包管理服务合同
- 2025年度网络安全短期技术支持人员劳动合同
- 2024-2030年中国产教融合行业市场运营态势及发展前景研判报告
- 2024年微生物检测试剂行业商业计划书
- 高中英语选择性必修一单词表
- 初中生物校本课程纲要
- 物业公司介绍
- JTGT H21-2011 公路桥梁技术状况评定标准
- 【永辉超市公司员工招聘问题及优化(12000字论文)】
- 中国直销发展四个阶段解析
- 2024届浙江省宁波市镇海区镇海中学高一物理第一学期期末质量检测试题含解析
- 部编版语文四年级下册 教材解读
- 《一次函数与方程、不等式》说课稿
评论
0/150
提交评论