- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机设计研究格式模板
湖南农业大学课程设计报告 学 院:信息科学技术学院 班 级:2011级信息工程2班 姓 名:熊广 学 号:201141843214 课程设计题目:编程输出九九乘法表 课程名称:汇编语言与微机原理 评阅成绩: 评阅意见: 成绩评定教师签名: 日期:2013年 12 月 12日 目 录 概述 ………………………………………………………… 1 一 需求分析 ……………………………………………… 1 二 概要设计………………………………………………… 1 三 主要流程图……………………………………………… 2 四 代码与分析……………………………………………… 3 五 调试分析 ……………………………………………… 4 六 测试结果示例 …………………………………………… 5 七 心得体会 ……………………………………………… 5 编程输出九九乘法表 概 述: 本程序主要完成一个输出九九乘法表的程序,主程序实现九九乘法表的输出。程序输出界面为阶梯型,程序设计中主要应用了条件转移指令判断,通过更改字符对应的ASII码达到乘法字符输出。 需求分析 在日常生活中,我们经常需要使用到九九乘法口诀,以达到一些计算目的。因此编写一个输出九九乘法表程序能够帮助许多学生学习此口诀。而且本程序通过汇编语言实现,汇编语言具有许多其他语言不可替代的优点,其目标程序占用内存空间少,运行速度快,在一些硬件配置较差的机器上也能大显身手。 概要设计 (一)数据类型 程序中主要用了byte型变量,以及cs,ds,ax,bx寄存器。将提示信息存储在byte型变量数组中,然后将偏移地址存储在ax寄存器中,以用于输出信息。用bl暂存乘数,用bh暂存被乘数。 (二)主要类型 程序中主要用byte型变量存储提示信息,用bl寄存器存放乘数,bh寄存器存放被乘数,进行乘法运算。 三.主要流程图 四.代码与分析 本程序首先是程序代码段开始code segment用main proc far使程序模块化,子程序和调用程序不在同一段,方便数据调用。使各寄存器入栈,初始化,并使用乘法调整指令,将各种字符转换为ASCII码值,方便输出。利用JNA判断,实现判断循环功能。程序的具体代码如下: ;题目二十七 输出九九乘法表程序设计 code segment;数据段开始 main proc far;子程序调用时使用的参数 assume cs:code;设定数据放入cs寄存器 push ds;DS寄存器入栈 mov ax,0;ax寄存器赋值0 push ax;ax寄存器入栈 mov bl,1;乘数赋值为1 lop2: mov bh,1;被乘数赋值为1 lop1: mov al,bh;被乘数存放如al寄存器当中 mul bl; 将bl与bh相乘 结果送到ax中 aam ;乘法调整指令 add bh,30h ;变为ASCII的值 add bl,30h mov cx,ax mov dl,bh ;用21中断 显示被乘数 mov ah,2 int 21h mov dl,* ;显示乘号 mov ah,2 int 21h mov dl,bl ;显示乘数 mov ah,2 int 21h mov dl,= ;显示等号 mov ah,2 int 21h cmp ch,0 ;查看高位有没有值 je tu;等于转移 add ch,30h ;若有则显示 mov dl,ch mov ah,2 int 21h tu:add cl,30h ;否则显示低位 mov dl,cl mov ah,2 int 21h mov dl, ;显示空格 mov ah,2 int 21h sub bh,30h ;将ASCII还原为BCD数 sub bl,30h inc bh ;将被乘数加一 cmp bh,bl ;比较看是不是要换行 jna lop1;不高于转移 mov dl,0ah ;换行与置首位显示 mov ah,2 int 21h mov dl,0dh;置于首位置并显示 mov ah,2 int 21h inc bl;否则乘数加一 cmp bl,9;比较乘数与9的大小,是不是要结束 jna lop2 mov ah,4ch ;返回dos int 21h main endp code ends end main 五.调试分析 例如,输入程序名无错误,即可输出 六.测试结果示例 首先在模拟dos环境进入程序,测试结果如下图: 心得体会 通过本次汇编课程设计,我深刻感受到了汇编语言在程序运行效率,以及时间、空间上的优越性。对汇编中常用的寄存器有了一定的了解,了解了一些子程序调用时需使用的参数如main proc far和main proc ne
文档评论(0)