汇编语言课程设计--代码转换程序.doc
《汇编语言课程设计--代码转换程序.doc》由会员分享,可在线阅读,更多相关《汇编语言课程设计--代码转换程序.doc(19页珍藏版)》请在沃文网上搜索。
1、汇编语言课程设计目 录1 设计目的12 设计内容13 实现方法13.1 系统目标13.2 主体功能13.3 开发环境14系统概要设计14.1 系统的功能模块划分14.2 系统流程图25系统详细设计45.1 程序功能菜单模块设计45.2小写字母向大写字母转换模块设计45.3大写字母向小写字母转换模块设计55.4 二进制数向十六进制数转换模块设计55.5 十六进制数向二进制数转换模块设计55.6 十六进制数向十进制数转换模块设计66 测试66.1 测试方案66.2 测试结果77小 结7参考文献9附 录10附录1 源程序清单10附录1.1程序功能菜单模块源程序10附录1.2小写字母向大写字母转换模块
2、源程序12附录1.3大写字母向小写字母转换模块源程序13附录1.4二进制数向十六进制数转换模块源程序13附录1.5十六进制数向二进制数转换模块源程序14附录1.6十六进制数向十进制数转换模块源程序153代码转换程序1 设计目的 本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。2 设计内容功能菜单的编制;小写字母向大写字母的转换;大写字母向小写字母的转换;二进制数向十六进制数的转换;十六进制数向二进制数的转换;十六进制数向十进制数的转换。3 实现方法3.1 系统目标实
3、现代码转换:大小写字母之间转换,二进制、十进制、十六进制之间的相互转换。3.2 主体功能Change1模块实现小写字母向大写字母的转换,change2模块实现大写字母向小写字母的转换。在实际应用中,不仅有数值的运算,还有更多的是大量的非数值的处理,特别是在现代或今后的社会活动中,非数值处理在管理程序、文字处理和过程控制中将会得到广泛的应用。Change3模块实现二进制数向十六进制数的转换,change4实现十六进制数向二进制数的转换,change5实现十六进制数向十进制数的转换。由于用户输入的数一般是用十进制表示的,而这些数在计算机内存储、运算时一般都是用二进制,这就涉及到了十进制数向二进制的
4、转换问题,所以二进制和十进制之间的转换算法是汇编语言程序员应该掌握的基本算法之一。3.3 开发环境TASM5.0集成环境。4系统概要设计4.1 系统的功能模块划分本程序共有7个模块,start模块为核心模块,该模块调用main模块和change5模块,main模块又调用change1、change2、change3和change4四个模块,其中:change1模块实现小写字母到大写字母的转换;change2模块实现大写字母向小写字母的转换;Change3模块实现二进制数向十六进制数的转换;change4实现十六进制数向二进制数的转换;change5实现十六进制数向十进制数的转换。4.2 系统流
5、程图图3-2-1 程序流程图开始从键盘读取字符是否az之间输出对应字符的大写输出错误结束YN开始从键盘读取字符AZ之间输出对应字符的小写输出错误结束YN图3-2 小写向大写转换 图3-3 大写向小写转换开始从键盘读取字符十六进制数输出对应二进制数输出错误结束YN开始从键盘读取字符二进制数输出对应十六进制数输出错误结束YN图3-4 二进制向十六进制转换 图3-5 十六进制向二进制转换开始从键盘读取字符十六进制数输出对应十进制数输出错误结束YN图3-6 十六进制向十进制转换 5系统详细设计5.1 程序功能菜单模块设计主菜单的功能选择菜单的代码如下:;*主程序中的提示信息*str1 DB 0AH,0
6、DH, *$str2 DB 0AH,0DH, * Welcome you ! *$str3 DB 0AH,0DH, *-*$str4 DB 0AH,0DH, * This is programme of code conversion! *$str5 DB 0AH,0DH, * Please input your choice: *$str6 DB 0AH,0DH, * 1:Lowercase letters to Capital letters *$str7 DB 0AH,0DH, * 2:Capital letters to Lowercase letters *$str8 DB 0AH,
7、0DH, * 3:Binary to Hex *$str9 DB 0AH,0DH, * 4:Hex to Binary *$str10 DB 0AH,0DH, * 5:Hex to Decimal *$str11 DB 0AH,0DH, * 6:Quit or exit *$str12 DB 0AH,0DH, *$通过disp语言将其打印在屏幕上,用户可以通过输入不同的字母来选择实现不同的功能。(输入的字母不区分大小写)5.2小写字母向大写字母转换模块设计先从键盘上读取字符:start:push ds sub ax,ax push ax mov ax,data mov ds,ax并判断字符是否
8、有效:again:mov ah,1 int 21h cmp al,0得到有效字符之后,通过ASCII值进行运算得到相应的大写字母并输出。5.3大写字母向小写字母转换模块设计先从键盘上读取字符:start:push ds sub ax,ax push ax mov ax,data mov ds,ax并判断字符是否有效:again:mov ah,1 int 21h cmp al,0得到有效字符之后,通过ASCII值进行运算得到相应的小写字母并输出。5.4 二进制数向十六进制数转换模块设计先从键盘上读取字符:start:push ds sub ax,ax push ax mov ax,data mo
9、v ds,ax并判断字符是否有效:again:mov ah,1 int 21h cmp al,0当得到有效字符时,对得到的二进制数进行运算得到十六进制数并输出,在输出时在数字的结尾加上十六进制标识符H。5.5 十六进制数向二进制数转换模块设计先从键盘上读取字符:start:push ds sub ax,ax push ax mov ax,data mov ds,ax并判断字符是否有效:again:mov ah,1 int 21h cmp al,0当得到有效字符时,对得到的十六进制数进行运算得到二进制进制数并输出,在输出时在数字的结尾加上二进制数标识符B。5.6 十六进制数向十进制数转换模块设计
10、先从键盘上读取字符:start:push ds sub ax,ax push ax mov ax,data mov ds,ax并判断字符是否有效:again:mov ah,1 int 21h cmp al,0当得到有效字符时,对得到的十六进制数进行运算得到十进制数并输出,在输出时在数字的结尾加上十进制数标识符D。6 测试6.1 测试方案图6-1-1 程序运行时的主界面图6-1-2 小写字母转换为大写字母图6-1-3 大写字母转换为小写字母图6-1-4 二进制数转换为十六进制数图6-1-5 十六进制数转换为二进制数图6-1-6 十六进制数转换为十进制数图6-1-7 当输入错误时提示重新输入6.2
11、 测试结果程序在设计完成之初汇编时出现非法错误,在进行修改后可正常运行。程序能够正常的进行大小写字母的转换,二进制数、十进制数、十六进制数之间的转换,但在主程序和子程序之间的衔接仍存在部分问题,未完全达到预计的功能,输入选项与子程序的调用存在部分缺陷,需要进一步进行细节上的改进。7小 结经过近一个星期的工作,才把课程设计完成。经过这次课程设计,我加深了对汇编语言的理解,也对上课时所说的语法有了深刻的认识。相对于以前学习的高级语言,对汇编语言的第一印象是很酷,因为它很抽象。怀着崇拜的心情学着汇编语言,虽然枯燥,但是每当完成一个很简单的程序就会感到非常的有成就感。 当我刚开始选择这个题目是因为课本
12、上有一个相近的代码转换,所以感觉这个题目应该很好写。可是等到真正动手的时候就感到了困难。首先是对字符串的输入输出的处理, 解决不了就改成了字母大小写转换是每次只输入一个字母,然后根据其大小写转换,如大写就转换成小写,否则反之。然而在随后的进制转换中用遇到了同样的问题,发现 这是一个不能不解决的问题,随后查阅了资料才解决。课程设计过程,是对团队精神考察的过程,让我们在合作起来更加默契,在成功后一起体会喜悦的心情。团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询或者同学间相互讨论,只要认真钻研,动脑思考,动手
13、实践,就没有克服不了的难题。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的掌握所学的知识,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。 参考文献1刘其明. 汇编语言程序设计教程M. 江苏:中国矿业大学出版社, 2010.102沈美明. I
14、BM-PC汇编语言程序设计实验教程M. 北京:清华大学出版社,2010.6附 录附录1 源程序清单附录1.1程序功能菜单模块源程序start主菜单:extrn main:far,change1:far,change2:far,change3:far,change4:far,change5:farstack segment para public stack db 200 dup (0)stack endsdata segment;*主程序中的提示信息*str1 DB 0AH,0DH, *$str2 DB 0AH,0DH, * Welcome you ! *$str3 DB 0AH,0DH, *
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 课程设计 代码 转换 程序