微机原理课程设计-统计字符串长度推荐.doc

微机原理课程设计-统计字符串长度推荐.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理课程设计-统计字符串长度推荐

微机原理 课程设计报告 题 目: 计算字符串长度 学生姓名: 学 号: 专业班级: 计科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程序退出,应该是任意键退出 INT 21H; MOV AH,4CH;

您可能关注的文档

文档评论(0)

feixiang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档