- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理课程设计--统计字符串长度
微机原理 课程设计报告
题 目: 计算字符串长度
学生姓名: 王小可
学 号: 201311010138
专业班级: 计科13101
同组姓名:
指导教师: 刘洁
设计时间:2015.12.28-2015.12.31
指导老师意见:
评定成绩: 签名: 日期:
目录
目录 2
一、需求分析 2
二、系统设计 3
1.内容 3
2.思路 3
三、系统总体框图 3
四、调试分析 4
五 5
六、程序设计 7
七、总结 10
一、需求分析
本程序主要用于,把输入的一串字符,统计长度并输出。
本程序采用汇编语言编程,定义了宏、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字个数为5。
二、系统设计
1.内容
从键盘输入任意一个字符串,以回车作为结束符并显示,统计并显示出它字符的个数。
2.思路
(1).在数据段中定义各种字符提示信息以便程序清晰明白。
(2).在数据段中定义一个STR DB 100,?,100 DUP(?)
(3).将数据段存到AX寄存器,再将AX寄存器转移到DS寄存器。
(4).提示用户输入一串字符,以回车结束。
(5).将偏移地址放入DX。
(6).输入数据,长度不能大于100。
(7).将输出提示语的偏移地址放入DX。
(8).统计字符串的长度。
(9).将结果转化成可以显示的ASCII码,并保存到AX中。
(10).将AX中的结果转移到DX中。显示DX,以任意键退出
三、系统总体框图
四、调试分析
本程序主要用于,把输入的一串字符统计字符的个数。本程序采用汇编语言编程,定义了宏、比较判断、循环调用、统计等等,非常人性化的把统计的结果显示出来。比如你输入一串数字“12345”,它会显示出你输入的这串数字,并显示数字的个数为5。
实验结果
(1)用DOSBOX 在win7上运行,将文件夹路径设为C盘
运行masm,编译len.asm,生成len.obj文件
连接len,生成len.exe文件
运行len.exe
六、程序设计
DATAS SEGMENT;数据段定义
MSG1 DB Input the string: ,13,10,$
;定义了一个字符串,13是回车,10是换行,字符串必须以$结束
MSG2 DB 13,10,The string lenth is:$
STR DB 100,?,100 DUP(?);
;DB 100 DUP(?)意思是定义100个未经初始化的字节
;DB 100 意思是定义一个字节,初始化为100
;DB ?意思是定义一个为初始化的字节
DATAS ENDS
STACKS SEGMENT;堆栈段定义,此程序不需要,不定义会有警告,但不影响运行。
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT;代码段开始
ASSUME CS:CODES,DS:DATAS,SS:STACKS;说明段寄存器和定义寄存器的关系
START:
MOV AX,DATAS;数据段到AX寄存器
MOV DS,AX;AX寄存器到DS寄存器,不能数据段直接到DS
LEA DX,MSG1;加载定义字符的有效地址MSG1
MOV AH,9;调用dos显示字符串功能
INT 21H;此处输入代码段代码
LEA DX,STR;传偏移地址
MOV AH,0AH;0AH 表示键盘输入到缓冲区
INT 21H;读数据
;MOV传送的是地址所指的内容,而LEA只是地址。
LEA DX,MSG2
MOV AH,9
INT 21H
LEA SI,STR
MOV AL,[SI+1]
MOV AH,0;把AH变成0
MOV BL,10
DIV BL;除法指令,除数有8位和16位两种,如果除数是8位,那么除法的结果AL保存上,AH保存余数
;如果除数是16位,那么除法的结果AX保存商,DX保存余数。
;被除数默认存放在AX中(10位以内)或AX和DX中(32位,DX存放高16位,AX存放低16位)
ADD AX,3030H;把两字节的非压缩BCD码转成可以显示的ASCII码
MOV DX,AX
MOV AH,2;显示输出
INT 21H
MOV DL,DH
INT 21H
MOV AH,7;点击enter程序退出,应该是任意键退出
IN
您可能关注的文档
最近下载
- 《市政排水管道气囊封堵施工规程》.pdf
- TOPRAAD920印刷模切开槽机.pdf VIP
- 单相整流电路建模与仿真.doc VIP
- 缺血性脑血管病临床管理指南解读.pptx VIP
- 工程概算预算审核方案(3篇).docx VIP
- 神经重症气管切开患者气道功能康复与管理专家共识2024.pptx VIP
- 2025年监理工程师之监理概论考试题库及答案(名师系列).docx VIP
- 2025年监理工程师之监理概论押题练习试卷B卷附答案 .pdf VIP
- 2025年监理工程师之监理概论考试题库及完整答案(必刷).docx VIP
- 2025年监理工程师之监理概论押题练习试卷A卷附答案 .pdf VIP
文档评论(0)