- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《汇编语言》课程设计报告
题 目: 数制转换器
院 (系): 计算机与信息工程学院
班 级: 控制10-2班
姓 名:
学 号:
指导教师:
1设计主要任务
本设计利用汇编语言来实现数制转换设计,用于方便进制之间的互换。设计的内容可以使十六进制、二进制、十进制的数制互相转换。
1.1设计任务与目标
通过编程实现显示菜单,然后通过键盘输入菜单相应的选项进入相应的数制转换,然后通过选项对应的子程序跳转来实现转换,子程序中通过宏定义定义数制前后的数制,并且在宏定义过程中实现数制转换算法,最后输出转换后的进制数 。
2 设计方案
根据设计要求,系统设计框图如图2-1所示。
debug运行程序显示数制选择菜单
debug运行程序显示数制选择菜单
作出选择
作出选择
输入转换的进制数
输入转换的进制数
子程序调用
子程序调用
输出转换后的进制数
输出转换后的进制数
图2-1 系统设计框图
3 主程序设计
对于主程序,如图所示,通过把菜单内容送到数据段,之后输出显示菜单;然后调用1号功能从键盘输入选项,把选项送到AL中,分别与1、2、3、4、5、6、0比较,如果输入的数与其相同则跳到对应的子程序中,通过子程序实现输入输出进制数功能,每一次输入输出完成之后程序会返回选择菜单。
选择菜单
选择菜单
输入选项判断去哪一步
输入选项判断去哪一步
00退出程序
00
退出程序
5 64321跳转回到主菜单
5
6
4
3
2
1
跳转回到主菜单
十六进制转换成十进制十六进制转换成二进制二进制转换成十进制二进制转换成十六进制十进制转换成十六进制十进制转换成二进制
十六进制转换成十进制
十六进制转换成二进制
二进制转换成十进制
二进制转换成十六进制
十进制转换成十六进制
十进制转换成二进制
输出转换后的结果
输出转换后的结果
图3-1 系统进制转换流程图
4 子程序设计
4.1 输入处理
在子程序中,无论是哪一步,都是通过调用通用宏来完成数制转换。第一步是将从键盘输入的字符是否越界,然后将这个进制数转换成十进制形式存到AX;例如一个二进制数:0111,它会被转换成1*22+1*21+1*20然后送到AX中等待第二步处理。第一步子程序框图如下图4-1所示:
定义通用inAX宏,确定转换之前的进制,例如inAX CX、CX=2是把转换之前的进制确定为2存到CX中
定义通用inAX宏,确定转换之前的进制,例如inAX CX、CX=2是把转换之前的进制确定为2存到CX中
通用宏charin逐个输入转换之前进制字符
通用宏charin逐个输入转换之前进制字符
回车
回车
判断输入的字符AL=?
判断输入的字符AL=?
将字符的ASCII码转换成数值送到AX中0~9<0
将字符的ASCII码转换成数值送到AX中
0~9
<0
=0AX=??>9判断输入的字符AL=?
=0
AX=??
>9
判断输入的字符AL=?
≠0A~Z<A
≠0
A~Z
<A
AX←AX*CX
AX←AX*CX
AX出栈>F
AX出栈
>F
a~z<a或>z判断输入的字符AL=?
a~z
<a或>z
判断输入的字符AL=?
图4-1 子程序框图
4.2输出处理
之后第二步是把之前的内容处理并输出,同样也是通过通用宏命令处理,用BX表示转换后的进制,用AX除以BX,把商放到AL中,并且把余数放到DX中且压入堆栈保存,得到余数判断类型,如果是数字直接输出,如果大于10则加上55后得到的ASCII码字符然后输出。具体子程序框图如下图4-2所示:
定义通用outAX宏,确定转换之后的进制,例如outAX BX、BX=2是把转换之后的进制确定为2存到BX中
定义通用outAX宏,确定转换之后的进制,例如outAX BX、BX=2是把转换之后的进制确定为2存到BX中
判断之前保存的余数判断第一步的AX为多少
判断之前保存的余数
判断第一步的AX为多少
不为0
不为0
<10直接输出输出后返回上一步处理下一个余数直到堆栈中没有余数
<10
直接输出
输出后返回上一步处理下一个余数直到堆栈中没有余数
>10
继续执行直到AX为0AX/BX
继续执行直到AX为0
AX/BX
把它的ASCII码加上55得到相应的字符
把它的ASCII码加上55得到相应的字符
AL
AL←商
DX←余数
文档评论(0)