您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 大工19春《汇编语言程序设计》大作业题目及要求答案
大连理工大学远程与继续教育学院《汇编语言程序设计》课程设计学习中心:专业:计算机应用技术年级:年春/秋季学号:学生:题目:十进制转换十六进制程序设计1.谈谈你对本课程学习过程中的心得体会与建议?时间过得真快,一学期的学习马上就要结束了,经过一个学期的学习,我也慢慢摸出了汇编学习的规律,特别感谢指导老师的耐心教导。首先,学习这门语言时如果能联系上以前学过的其他高级语言的知识,则会起到良好的效果。例如C语言程序的运行逻辑结构有顺序(按语句依次执行)、分支结构(IF...THEN...ELSE...),循环结构(FOR...NEXT)三种结构,也通过C语言了解并掌握了什么是子程序,什么是调用。事实上,汇编语言中有关程序结构,子程序等等的知识都是跟C语言十分相似的,只是在编程时用到的语言不同:汇编语言完全面向机器,需要指明数据在寄存器、内存中的流向。第二,学习汇编语言,首要问题是学习80X86指令系统。如果能将指令系统中的各个助记符、格式等都能完全掌握并灵活运用,大部分工作就已经完成了。指令系统确定了CPU所能完成的功能,是用汇编语言进行程序设计的最基本部分。如果不熟悉汇编指令的功能及其有关规定,那肯定不能灵活使用汇编语言。还有一点十分重要。和所有的程序设计语言一样,要学好汇编语言,实验是必不可少的环节。我们深有体会:书上的程序都能看懂,基本原理也都明白,但是在自己亲手编写程序时,却无从下手,甚至连第一句该怎么写都不知道。通过实验,可以在很大程度上加深印象。在书上看程序,一切都是理所当然,十分顺利,而自己动手,才会真正发现自己的不足之处。程序的编写在记事本中进行即可,掌握debug的使用对实验是有很大帮助的。现在汇编语言的学课程已经告一段落了,学习过程中遇到的所有困难以及遗留的难点都需要我们在其余时间里逐步攻克,在打好基础的前提下,学习更加大连理工大学远程与继续教育学院《汇编语言程序设计》课程设计专业的汇编知识。以上便是我在学习汇编语言过程中所有的心得体会,我们会在不断的学习与实践中向着更深入的层面迈进。2.《汇编语言程序设计》课程设计,从以下5个题目中任选其一作答。《汇编语言程序设计》课程设计注意:从以下5个题目中任选其一作答。总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言作业提交:大作业上交时文件名写法为:[姓名奥鹏卡号学习中心](如:戴卫东101410013979浙江台州奥鹏学习中心[1]VIP)以附件word文档形式上交离线作业(附件的大小限制在10M以内),选择已完成的作业(注意命名),点提交即可。如下图所示。注意事项:独立完成作业,不准抄袭其他人或者请人代做,如有雷同作业,成绩以零分计!题目一:进制转换程序要求:(1)撰写一份word文档,里面包括(算法思路、算法程序框图、主要函数代码、使用指令具体含义)章节。大连理工大学远程与继续教育学院《汇编语言程序设计》课程设计(2)算法思路:比如可设计十进制转化十六进制的算法,简单介绍该算法的基本思想,100字左右即可。(3)算法程序框图:绘制流程图或原理图,从算法的开始到结束的程序框图。(4)主要函数代码:列出算法的具体代码。(5)列出算法中使用指令的含义,比如解释MOV指令的含义,ADD指令的含义,至少撰写十个指令。总则:只能使用汇编语言进行编制,不能选用C/C++等高级语言!答:算法思路采用一个子程序DECIBIN实现从键盘取得十进制数并把它转换为二进制数;另一个子程序BINIHEX把此二进制数以十六进制数的形式在屏幕上显示出来。为避免屏幕上的重叠,另外用CRLF子程序取得回车和换行效果。各个子程序之间用BX寄存器来传送信息。在过程DECIBIN中取得的输入数据转换为二进制数后保存在BX寄存器中,而过程BINIHEX需要把BX寄存器中的数用十六进制形式显示出来。二、算法程序框图开始调用DECIBIN调用CRLF调用BINIHEX调用CRLF结束从键盘取得十进制数,保存在BX中显示回车和换行用十六进制数形式表达显示BX中的数大连理工大学远程与继续教育学院《汇编语言程序设计》课程设计三、主要函数代码程序(指令含义在代码后面):DECIHEXSEGMENT;定义代码段ASSUMECS:DECIHEXMAINPROCFAR;主程序REPEAT:CALLDECIBIN;调用子程序输入十进制数CALLCRLF;显示回车、换行CALLBINIHEX;以十六进制数输出CALLCRLF;显示回车、换行JMPREPEAT;转REPEAT,继续MAINENDPDECIBINPROCNEAR;十进制数输入子程序MOVBX,0;BX保存输入数NEWCHAR:MOVAH,1INT21H;调用DOS功能输入字符SUBAL,30H;转为数0-9JBEXIT;小于0,不是数字CMPAL,9D;与9比较JAEXIT;大于,不是数字CBW;AL=AXXCHGAX,BX;AX、BX互换大连理工大学远程与继续教育学院《汇编语言程序设计》课程设计MOVCX,10D;CX=10MULCX;AX=AX*CXADDBX,AX;BX为前面输入的结果JMPNEWCHAREXIT:RETDECIBINENDPBINIHEXPROCNEARMOVCH,4;CH循环次数ROTATE:MOVCL,4;每次循环输出一位十六进制数ROLBX,CL;即移位4个二进制位MOVAL,BL;AL=BLANDAL,0FH;取低4位ADDAL,30H;转变为ASCII码CMPAL,3AH;是否为’0’-‘9’JLPRINTIT;是转PRINTITADDAL,7H;否转为’A’-‘F’PRINTIT:MOVDL,AL;DL=输出字符MOVAH,2INT21H;调用DOS中断,显示字符DECCHJNZROTATE;没循环结束,继续RET;返回大连理工大学远程与继续教育学院《汇编语言程序设计》课程设计BINIHEXENDPCRLFPROCNEAR;输出回车、换行MOVDL,0DHMOVAH,2INT21H;输出回车MOVDL,0AHMOVAH,2INT21H;输出换行RETCRLFENDPDECIHEXENDSENDMAIN
本文标题:大工19春《汇编语言程序设计》大作业题目及要求答案
链接地址:https://www.777doc.com/doc-6886579 .html