中南大学汇编课程设计.doc

中南大学汇编课程设计.doc

ID:56909343

大小:64.50 KB

页数:8页

时间:2020-07-23

中南大学汇编课程设计.doc_第1页
中南大学汇编课程设计.doc_第2页
中南大学汇编课程设计.doc_第3页
中南大学汇编课程设计.doc_第4页
中南大学汇编课程设计.doc_第5页
资源描述:

《中南大学汇编课程设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、中南大学课程设计报告课题:计算机原理与汇编课程设计题目:输出九九乘法表目录摘要九九乘法表输出是应用masm.exe、link.exe、debug.exe等汇编语言软件进行编译链接及执行目的程序的方法来实现。并且认识和利用DOS系统下的21h函数的02功能号来进行单个字符的输出程序设计的过程中用到循环和子函数的思想。模块化的程序设计思想有利于源代码代码的编写、错误的查找和修改,同时可以分步来调试程序、减少工作量,乘法表的输出没有乘数和被乘数,只有乘积的结果输出。关键词汇编语言程序设计、微机原理、九九乘法表、dos中断系统。一、设计要求本实验要

2、求将九九乘法口诀表输出在屏幕上。二、设计思想九九乘法表输出程序主要用到一个嵌套循环和两个过程,外层循环用bl保存并记录,外循环每执行一次,bl的值加一。内循环用bh保存并记录,如果bh的值小于bl的值则执行内循环,内循环中每盒bl比较一次,成立则值加一不成立则转到换行,子函数执行,同时也比较外循环是否继续满足条件执行,即比较bl的值是否小于10,小于就执行外循环否则就结束程序。设计dis子函数,把内存中的16进制数转换成10进制,设计的disp子函数是把十进制转化成ASCLL码并输出乘积,这样得到的显示的结果就是我们看到的10进制数。子函数ou

3、tput_ctl的功能是换行,当内循环变量bh的值大于外循环值bl时调用这个函数,使得输出的结果有序,输出的结果更容易体现嵌套循环。三、实验步骤(一)、创建文本文件,编写源代码,把文件保存在有masm.exelink.exe等汇编软件的文件夹下,文件的后缀名改为.asm,比如九九乘法表输出.asm。(二、开启电脑,在“开始”—“运行”输入“cmd”命令进入DOS的字符操作界面,编译链接程序代码,查看源程序是否有错误,有错误则加以修改。(三)、程序编译链接没有错误的情况下执行目标程序,查看结果的输出情况,并用debug命令查看内存的变化。(四

4、)、按要求撰写设计报告。三、程序运行结果截图五、程序源代码datasegmentadb1bdb?dataendscodesegmentassumecs:code,ds:datastart:movax,data;数据段送给axmovds,ax;ax给ds段lop1:moval,a;a给almovcl,al;把al给cl,设置循环次数movb,1;把1给blop:movah,2;2号功能调用,显示dl中的值orb,30h;b或30H给b,把字符转换为对应的ASCII码movdl,b;把b给dl,显示乘数int21hmovdl,'*';显示乘号int2

5、1hora,30h;a或30H给amovdl,a;把被乘数给dl,显示被乘数movah,2int21hmovdl,'=';显示“=”号int21hsuba,30h;a减去30hsubb,30h;b减去30hmoval,a;把a的值给almovbl,b;把b的值给blmulbl;al乘以bl结果给axmovbl,10;把10给bldivbl;ax除以bl,商给al,余数给ahmovbh,al;把al给bhmovbl,ah;把ah给blorbx,3030h;bx或3030h,把字符转化为对应的ASCIImovah,2cmpbh,30h;bh和30h比

6、较jelop2;相等时转到lop2movdl,bh;把bh给dl,显示bh的内容int21hlop2:movdl,blint21hmovdl,''int21hincblooplopmovdl,13int21hmovdl,10int21hincacmpa,10jblop1movah,4chint21hcodeendsendstart;bl给dl,显示bl中的内容;显示空格;b自加;循环;输出回车;输出换行;a自加;a与10比较;小于10转到lop1;返回调用程序六、设计过程中遇到的问题及解决方法首先,遇到的问题是计算机的识别问题。计算机内部只唯一认

7、识2进制代码,为了更好的存储信息,计算机用十六进制数存储数据,设计之初,我反复思考自己的算法没有问题,但是总是的不到想要的结果,利用debug命令查看内存的情况也正确,后来在网上百度论坛上发帖找到答案,设计了两个子函数来处理这个问题,一个是dis函数,一个是disp函数之后再编译链接,执行目的程序得到预计的结果。其次,就是子函数的解决问题,编写源代码的的习惯问题,语句不是成对出现,push和pop语句出错,导致运行链接正确,而没有正确的结果。原因是没有按顺序出栈或者不出栈,使得内存没有正确释放或者不释放引起的。在仔细阅读IBM_PC汇编语言这本书

8、的子函数设计一章后,加大了对子函数的认识,并修改解决上面问题。最后,问题设计初,用到的是指定循环次数,利用loop语句来实现循环,这样结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。