汇编代码转换程序(字母转换,进制转换)

上传人:m**** 文档编号:476184021 上传时间:2024-02-19 格式:DOC 页数:17 大小:210.48KB
返回 下载 相关 举报
汇编代码转换程序(字母转换,进制转换)_第1页
第1页 / 共17页
汇编代码转换程序(字母转换,进制转换)_第2页
第2页 / 共17页
汇编代码转换程序(字母转换,进制转换)_第3页
第3页 / 共17页
汇编代码转换程序(字母转换,进制转换)_第4页
第4页 / 共17页
汇编代码转换程序(字母转换,进制转换)_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《汇编代码转换程序(字母转换,进制转换)》由会员分享,可在线阅读,更多相关《汇编代码转换程序(字母转换,进制转换)(17页珍藏版)》请在金锄头文库上搜索。

1、湖南农业大学课程设计报告学 院:信息科学技术学院 班 级:2010级计算机3班姓 名:杨田娇 学 号:201041842312课程设计题目:代码转换程序设计课程名称:汇编语言与微机原理指导老师:唐小勇评阅成绩:评阅意见:成绩评定教师签名:日期: 年 月 日目 录概述 1一设计题目 1 二设计内容与要求 1 三设计思想 1 四程序流程图 3 五程序源代码 5 六设计过程中遇到的问题及解决方法 14七设计心得 15代码转换程序设计概述: 代码转换程序主要是实现字母间的转换和数值之间的转换。其中字母转换是大小写字母之间的互换,二进制转换则是二进制,十进制,十六进制之间的转换。程序设计成一个代码转换系

2、统,给出一个可供选择的菜单,根据界面的信息选择不同的子功能。通过做这个程序,加强汇编语言编程的能力,更好的了解其基本原理,基本的思想,基本的方法以及相关的注意事项。一、 设计题目 代码转换程序设计二、 设计内容与要求 完成一个字母或数制之间的转化程序,主程序分别具有 5 种可选择的子功能,按相应的字符可分别进入相应的子功能并在屏幕上显示结果,按“q”键退出。5 种可选择的子功能分别为: 1)实现小写字母向大写字母的转换 2)实现大写字母向小写字母的转换 3)实现二进制数向十六进制数的转换 4)实现十六进制数向二进制数的转换 5)实现十六进制数向十进制数的转换三、 设计思想 运行程序,首先会显示

3、主界面,用户可依据提示选择不同的编号,实现不同的子功能。 1、大写字母向小写字母的转换。当用户选择编号a,便选中了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一个大写字母,会有一个判断输入是否合法的过程,若输入的是非大写字母,则会提示输入错误,请重新输入,直到输入正确为止。通过改变assic码值,实现大写字母向小写字母的转换。显示转换后的字母,然后跳转到主菜单。 2、小写字母向大写字母的转换。当用户选择编号b,便选择了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一个小写字母,接下来判断其合法性,若输入的字母是非小写字母,则会提示输入错误,请重

4、新输入,直到输入正确为止。通过改变assic码值,实现小写字母向大写字母的转换。显示转换后的字母后,跳转到主菜单。 3、二进制向十六进制的转换。当用户选择编号c,便选择了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示首先输入一个数字表示二进制的位数,在程序中有变量记录二进制的位数。再根据提示输入一个二进制数。其转换的主要思想是 二进制数的每四位代表十六进制的,通过移位来逐一将四个二进制位数的和转换成十六进制数保存在一个寄存器中,然后再继续按照每四位一求和的方法保存十六进制数的每一位,直到二进制数的所有位计算完毕,当对四位二进制数相加完毕后,将保存和的寄存器清零,采用相对寻址

5、改变十六进制数每一位存放的位置。其中还会对十六进制每一位上的数字进行判断,若是大于9,则转换成相应的字母,最后采用相对寻址的方式将十六进制的每一位依次输出。显示完毕后,跳转到主菜单。 4、十六进制向二进制的转换。当用户选择编号d,便选择了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一个十六进制数,此时会进行判断,判断输入的字符串是否符合十六进制数的要求,若是输入错误,则提示输入错误,重新输入,直到输入正确为止。其转换的主要思想是通过转换成十进制,然后将十进制数转换成二进制,在十六进制转换成十进制中,按权值展开再相加的思想,在十进制转换成二进制的中,主要是采用连除的方法

6、,将每一次的余数保存在堆栈中,直到商为零。最后出栈,根据栈的先进后出的原则,出栈的顺序就是转换后的二进制数的顺序。将转换后的二进制数输出后,跳转到主菜单。 5、十六进制向十进制的转换。当用户选择编号e,便选择了这一个子功能。通过判断标识符,程序跳转到标识符所在的位置。根据提示输入一个十六进制数,此时会进行判断,若是输入字符串不符合十六进制数的要求,则提示输入错误,重新输入,直到输入正确为止。十六进制数转换成十进制的主要思想是,按权值展开再相加。首先是将输入的字符转换成相应的数字,通过设置相应的变量,在最低位上的权值是1,然后依次是16,256依次进行累乘,直到十六进制数位数全部循环完毕,将每一

7、位所得的数保存在寄存器中,每进行一次就实现一次求和运算。最后将转换成的十进制数输出,跳转到主菜单。 6、退出。当用户选择编号q,便选择了退出。通过判断标识符,程序跳转到标识符所在的位置,实现退出。四、 程序流程图 开 始主菜单,用户选择子功能输入有误,重新输入其他退出abcdeq输入十六进制数输入二进制数输入小字母写输入大写字母输入错误输入错误输入错误判断输入是否合法输入错误判断输入是否合法N判断输入是否合法判断输入是否合法NNNY转换十进制YYY转换二进制数转换转换转换d判断子功能结 束输出输出输出输出输出e附图:图1:编译显示的主菜单图2:各个子功能显示五、 程序源代码include io

8、32.inc .data m1 byte 代码转换系统 ,13,10,0 ;菜单 m2 byte -,13,10,0 ;分割线 m3 byte 编号 操作 ,13,10,0 ma byte a 实现大写字母向小写字母的转换,13,10,0 mb byte b 实现小写字母向大写字母的转换,13,10,0 mc byte c 实现二进制向十六进制数的转换,13,10,0 md byte d 实现十六进制向二进制数的转换,13,10,0 me byte e 实现十六进制向十进制数的转换,13,10,0 mq byte q 退出,13,10,0 m_err byte 输入错误,请重新输入,13,10

9、,0 m_meau byte 请输入菜单中的编号: ,0 m_inputs byte 请输入一个小写字母: ,0 m_inputl byte 请输入一个大写字母: ,0 m_outputl byte 对应的小写字母: ,0 m_outputs byte 对应的大写字母: ,0 m_input1 byte 请输入二进制位数: ,0 m_input11 byte 请输入二进制数: ,0 m_output1 byte 转换后的十六进制数: ,0 m_output2 byte 转换后的二进制数: ,0 m_input3 byte 请输入一个十六进制数: ,0 m_output3 byte 转换后的十进

10、制数: ,0 array byte 8 dup (0) ;用字符串数组保存十六进制数 sum dword ? ;十进制数变量 len byte ? ;字符串数组的长度 m byte ? array1 byte 100 dup (0) ;定义一个数组用来保存初始二进制数 array2 byte 100 dup (0) ;用来保存转换后的十六进制数 n dword ? k dword ? j dword ? .codestart: mov eax,offset m1 ;显示菜单中的内容 call dispmsg mov eax,offset m2 call dispmsg mov eax,offs

11、et m3 call dispmsg mov eax,offset ma call dispmsg mov eax,offset mb call dispmsg mov eax,offset mc call dispmsg mov eax,offset md call dispmsg mov eax,offset me call dispmsg mov eax,offset mq call dispmsgmeau: mov eax,offset m_meau call dispmsg ;提示输入相应的菜单编号 call readc ;输入对应的编号 call dispcrlf ;换行 cmp al,a ;判断输入 jz a ;若输入a,则跳转到标识符a cmp al,b jz b ;若输入b,则跳转到标识符b cmp al,c jz cc ;若输入c,则跳转到标识符cc

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号