版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
显示数字对称等腰三角形Lra1课程设计的目的本次课程设计为了巩固和加深课堂所学知识,将课本上的理论知识和实际应用有机的结合起来,培养我的分析和解决实际问题的能力。通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。这个课程设计,能够显示一个由从一到八的数字组成的左右对称的三角形,给等腰三角形加彩色边框,并且能在三角形的下方显示自己的学号姓名。2设计方案论证2.1开发环境软件环境:操作系统:Windows864位(DirectX11)、BIOS系统DOS系统硬件环境:处理器:英特尔第三代酷睿i3-3110M@2.40GHz双核内存:4GB(三星DDR31333MHz)主硬盘:希捷ST500LM012HN-M500MBB(500GB/5400转/分)显示器:三星SEC3649(14英寸)MASM开发环境:Masm是汇编编译器,是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。使用步骤为:a使用编辑软件TE.EXE进行源程序的编写。b使用汇编软件MASM.EXE对源程序汇编。c使用连接软件LINK.EXE对目标文件进行连接。d使用调试软件DEBUG.EXE对可执行程序进行调试。2・2总体设计功能本程序分为5个部分,运行程序,首先会显示主界面,用户可依据提示选择不同的编号,实现不同的功能:当用户通过键盘输入1时,程序执行显示数字对称三角形功能,在运行界面显示输出的对称三角形。当用户通过键盘输入2时,程序执行将三角形边框用彩色显示功能。当用户通过键盘输入3时,在三角形下方用拼音显示自己的学号和姓名。当用户通过键盘输入4时,退回到主界面。除此以外,输入其他键,提示错误。图1主程序流程框图2.3详细设计功能2.3.1输出数字对称三角形功能该子程序能够实现从键盘读取字符'1'后输出数字等腰三角形。「开始-从键盘读取字符Y输出对应数字三角形输出错误V 1r结束图2输出数字对称三角形程序流程框图2.3.2数字对称三角形边框着色功能该子程序能够实现从键盘读取字符'2'后将输出数字等腰三角形外围数字用给定颜色显示出来。
2・3・4退出功能该子程序能够实现从键盘读取字符'4'后退出运行的程序,开始.从键盘读取字符退出程序 输出错误结束图5退出程序流程框图2.3.5提示错误功能该子程序能够实现从键盘读取字符不是'1''2''3''4'后输出'Invalidinput!'以提示错误。图6提示错误程序流程框图START标志着程序开始执行;ZHU模块的功能是从键盘读取数据并判断函数的下一步执行情况,是最主要的模块之一;SHUCHU1,SHUCHU2,SHUCHU3,SHUCHU4分别表示按下数字键'1''2''3''4'后程序跳到该段开始执行,属于主要的分支模块;DY1实现了打印数据的功能,其中,L0P2F实现打印左边数据,LOP2FO实现对左边边沿数据的着色LOP2G实现打印右边数据,LOP2G0实现对右边边沿数据的着色;CRLF可以实现数据输出前对磁盘的初始化,OUTX用于显示输出字符,SPACE用于对数据输出时输出数据地址的清空,DISPLAY实现打印要输出的字符;CLRSLR的功能是清标准屏子程序;WRITECC为色彩字符输出子程序。在打印左边数据时,CL、AH用于判断打印的数据是否在左边边沿,CL、BH用于判断打印的数据是否属于左边数据的最后一行;在打印右边数据时,AH用于判断打印数据是否属于右边数据的最后一行,BL用于判断打印的数据是否在右边边沿;AL用于存放将要打印的数据;CH用于判断打印是否该结束;DL存放打印字符的ASCLL码,DH存放打印字符的颜色值。3•设计结果与分析3.1调试程序启动DEBUG:D>DEBUGEXAM1.EXEA汇编-A14CA:0000U反汇编:14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA3579BDF136000000111B8A3148ED8B601B501B402B700B60BB206CD10E8FC0014CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA14CA3579BDF136000000111B8A3148ED8B601B501B402B700B60BB206CD10E8FC00BA1800B409CD21B401MOUMOUMOUMOUMOUMOUMOUMOUINICALLMOUMOUINIMOUSA4X1120B61A00000081092001尸■XSHHHHHL01XH1—ADDCABDD10DA2AT单步执行:-TAX=14fl3 BX=0000 CX=0409 DX=0000 SP=0200 BP=0000SI=0000DI=0000DS=1493 ES=1493 SS=14flA CS=14Cfl IP=0003 NUUPElPLNZNAPONC14CA:00038ED8 MOU DS,AXG执行:1shuchusanJiaoxingMOUDX,001814CA:0019B409MOUAH,09ScolorSlBCD21INI21SnameandstudentIDMOUAH,014quitInvalidinput?.inINT213.2运行程序⑴将汇编源代码在汇编软件MASM.EXE的汇编下生产DY.obj文件,用连接软件LINK.EXE对目标文件DY.obj,进行连接生成可执行文件DY.exe文件。其文件生成过程如图所示。在DOS的操作环境下,运行模拟显示这个汇编程序,运行的结果如图7所示。图7程序主界面图当用户输出字符'1'时,程序执行功能1,如图8所示。2222222iilliiii22222222222222iilliiii2222222IsliuchusanjiaoxingScolor3nameandstudentID4quitf图8功能1运行结果当用户输入字符'2'程序执行功能2,结果如下图所示。心厂命令提不符-aa.exe7777IshucliusanJiaoxingScolor□nameandstudentID4quitInualidinput?图9功能2运行结果当用户输入字符‘3'程序执行功能3,结果如下图所示。匚:「命令提符—aa.exeF1459106liHhihongishucliusanjiaoxingQcolor3nameandstudentID4quitInualidinput?图10功能3运行结果当用户输入字符‘4'程序退出。
(6)当用户输入除上述字符以外其他键,程序提示错误,结果如下图所示。图11提示错误功能运行结果4•总结在短暂几天的时间里,汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固了学过的知识,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令,进一步了解到了汇编语言的一些基本的指令,以及各个寄存器的功能及使用的方法。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。在这次程序设计的过程中,在设计的过程中不断地修改,改进,增强了自己分析问题解决问题的能力;在不断地调试过程中,不断的发现问题,解决问题,通过查资料,翻阅相关的书籍,以及向同学们请教,来逐一的解决各个问题。同时也更深的了解到了寄存器,存储器等的工作原理以及需要注意的一些问题。此次课程设计收获颇多,不仅仅是体会到了分析问题,想出解决方案的重要性,更是在编写代码转换这一程序的过程中,了解到每一个系统都是由许多的子功能组成的,我们在编写的过程中,可以先把每一个子功能分开编写,这样更容易发现错误,尽快的想出解决的方法,在将每一个子功能编写完毕后,逐一的将它们嵌入到主菜单中去,实现一个完整的系统。另外,在每一个子功能的编写过程中,需要十分的注意到各个变量名的统一化,以便于将其嵌入到主菜单中去,在编写标识符的名字的时候,尽量要做到看名字知其含义,使程序的可读性进一步增高。在编写代码转换程序的过程中,更是体会到了科学的严谨性,每一个小小的错误都不容忽视,再细小的地方都需要注意,否则将会导致程序的错误。不管在做什么,都需要十分的认真和谨慎,将每一步都做到最好。当设计一步步接近成功,每一个子功能调试正确,都会让自己感到很高兴,从中体会到了编程的乐趣,让自己更有信心,增强了对汇编语言程序设计的兴趣。5渗考文献[1] 杨文显,宓双,胡建人.新编汇编语言程序设计[M],北京:清华大学出版社,2010:20-58[2] 朱玉龙,任文览等.汇编语言程序设计[M],北京:清华大学出版社,2003:67-89⑶吴向军等•汇编语言程序设计[M],北京:高等教育出版社,2002:98-119[4]沈美明等.IBM-PC汇编语言及程序设计实验教程[M],北京:清华大学出版社,2001:45-67⑸钱晓捷等.汇编语言程序设计[M],北京:电子工业出版社,2000:1-24⑹李珍香等.汇编语言程序设计案例精编[M],北京:中国水利水电出版社,2004:5-16[7]白小明.汇编语言程序设计[M],北京:中国铁道出版社,2009:56-76⑻王成耀,姚琳.汇编语言程序设计[M],北京:机械工业出版社,2003:34-46[9] 范立南,谢子殿.单片机原理及应用教程[M].北京:北京大学出版社,2006.1:123-130[10] 沈美明等.IBM-PC汇编语言及程序设计实验教程[M],北京:清华大学出版社,2001.2:101-113&附录源代码:DATANUM
numOSEGMENTDB0AH,0DH,'F1459106lizhihong',0ah,0dh,'$'DB0AH,0DH,DB0AH,0DH,DB0AH,0DH,DB0AH,0DH,'1shuchusanjiaoxing',0AH,0DH'2color''3nameandstudentID''4quit'numlDATAdb'Invalidinput!','$'ENDSDATANUM
numOSEGMENTDB0AH,0DH,'F1459106lizhihong',0ah,0dh,'$'DB0AH,0DH,DB0AH,0DH,DB0AH,0DH,DB0AH,0DH,'1shuchusanjiaoxing',0AH,0DH'2color''3nameandstudentID''4quit'numlDATAdb'Invalidinput!','$'ENDSSTAKSTAKSEGMENTSTACKDW100HDUP(?)ENDSCODESTART:SEGMENTASSUMECS:CODE,SS:STAK,DS:DATAMOVAX,DATAMOVDS,AX=MAIN()===========ZHU:MOVDH,1MOVCH,01Hmovah,02hmovbh,0movdh,11设置提示行号movdl,6 ;设置提示列号int10hCALLCRLFMOVDX,offsetNUM0movah,9int21h ;显示提示MOVAH,01hINT21Hmovah,0hint16hCMPAL,31hJESHUCHU1CMPAL,32hJESHUCHU2CMPAL,33hJESHUCHU3CMPAL,34hJEovercallclrscrmovah,02hmovbh,0movdh,10;设置提示行号movdl,0;设置提示列号int10hMOVDX,OFFSETNUM1movah,9int21hjmpzhuSHUCHU1:movah,01hint21hcmpal,0dhjnezhuCALLCLRSCRCALLCRLFCALLCRLFmovdh,14CALLDY1JMPZHUSHUCHU2:movah,01hint21hcmpal,0dhjnezhuCALLCLRSCRCALLCRLFCALLCRLFmovdh,0CALLDY1JMPZHU
SHUCHU3:movah,01hint21hcmpal,0dhjnezhuCALLCLRSCRCALLCRLFCALLCRLFmovdh,0CALLDY1MOVDX,OFFSETNUMMOVAH,9INT21H;MOVAH,1;INT21HJMPZHUOVER:MOVAH,4CHINT21HDY1PROCNEARpushaxpushbxpushcxpushdxLOP2:;——PRINTSPACE——MOVCL,11SUBCL,CHLOP2E:CALLSPACEDECCLJNZLOP2E;——PRINT左-MOVCL,CHmovbh,8movah,8 ;ah左边延LOP2F:CMPCL,1JLLOP2FEXITcmpbh,ahjelop2F0cmpbh,cl ;bh左卜jzlop2F0MOVAL,CLCALLDISPLADECCLJMPLOP2Flop2F0:; movdh,2movdl,cladddl,'0'callwriteccdeccldecbhincahjmplop2FLOP2FEXIT:;——PRINT左―End-;——PRINT右——MOVCL,CHmovbl,7 ;右边延movah,1 ;ah右下MOVBH,2LOP2G:DECCLJZLOP2GEXITcmpbl,cljelop2G0cmpah,cljzlop2G0MOVAL,BHCALLDISPLAINCBHJMPLOP2Glop2G0:movdl,bhadddl,'0'callwriteccdecbldecahincbhjmplop2GLOP2GEXIT:;——PRINT右--End-
CALLINCCMPJBECRLFCHCH,8LOP2POPdxPOPexPOPbxPOPaxRETDY1ENDPCRLFPROCNEARPUSHAXPUSHDXMOVAH,2MOVDL,0AHINT21HMOVDL,0DHINT21HPOPDXPOPAXRETCRLFENDPOUTXPROC NEARPUSHAXPUSHDXMOVAH,2INT21HPOPDXPOPAXRETOUTXENDPSPACEPROCNEARPUSHAXPUSHDXMOVAH,2MOVDL,''INT21HPOPDXPOPAXRETENDP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农药制剂操作工成果转化竞赛考核试卷含答案
- 水土保持治理工安全教育强化考核试卷含答案
- 电商咨询师风险评估与管理评优考核试卷含答案
- 注水泵工操作能力强化考核试卷含答案
- 多膛炉焙烧工操作竞赛考核试卷含答案
- 起重装卸机械智能控制员安全风险测试考核试卷含答案
- 老年癫痫手术麻醉的脑电监测应用
- 2026山东省青岛市城阳区教育系统招聘高层次紧缺急需人才180人备考题库附答案详解
- 2026四川长虹物业服务有限责任公司绵阳分公司招聘环境专员兼行政助理岗位1人备考题库及答案详解(新)
- 虚拟现实技术的未来展望
- 新疆维吾尔自治区伊犁哈萨克自治州2023-2024学年八年级下学期期中数学试题
- 人工智能在专业通信领域的应用
- T-CI 178-2023 高大边坡稳定安全智能监测预警技术规范
- THHPA 001-2024 盆底康复管理质量评价指标体系
- 伤口的美容缝合减少瘢痕的形成
- MSOP(测量标准作业规范)测量SOP
- 颅鼻眶沟通恶性肿瘤的治疗及护理
- 人教版四年级《上册语文》期末试卷(附答案)
- 四川山体滑坡地质勘察报告
- 青岛啤酒微观运营
- 工程结算书(设备及安装类)
评论
0/150
提交评论