版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计说明书 NO.20显示数字对称等腰三角形1 课程设计的目的本次课程设计为了巩固和加深课堂所学知识,将课本上的理论知识和实际应用有机的结合起来,培养我的分析和解决实际问题的能力。通过对汇编语言程序代码的阅读、修改、设计,理解和掌握复杂的汇编语言应用程序的编程,提高实践编程能力。这个课程设计,能够显示一个由从一到八的数字组成的左右对称的三角形,给等腰三角形加彩色边框,并且能在三角形的下方显示自己的学号姓名。2 设计方案论证2.1开发环境软件环境:操作系统:Windows 8 64位(DirectX 11)、 BIOS系统 DOS系统硬件环境:处理器:英特尔 第三代酷睿 i3-3110M 2
2、.40GHz 双核 内存:4GB(三星 DDR3 1333MHz) 主硬盘:希捷 ST500LM012 HN-M500MBB (500GB/5400转/分) 显示器:三星 SEC3649(14 英寸)MASM开发环境:Masm是汇编编译器,是微软公司开发的汇编开发环境,拥有可 视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。使用步骤为:a使用编辑软件TE.EXE进行源程序的编写。 b使用汇编软件MASM.EXE对源程序汇编。 c使用连接软件LINK.EXE对目标文件进行连接。 d使用调试软件
3、DEBUG.EXE对可执行程序进行调试。2.2总体设计功能本程序分为5个部分,运行程序,首先会显示主界面,用户可依据提示选择不同的编号,实现不同的功能: 当用户通过键盘输入1时,程序执行显示数字对称三角形功能,在运行界面显示输出的对称三角形。当用户通过键盘输入2时,程序执行将三角形边框用彩色显示功能。开始当用户通过键盘输入3时,在三角形下方用拼音显示自己的学号和姓名。当用户通过键盘输入4时,退回到主界面。除此以外,输入其他键,提示错误。否Main函数Dh=1LOP1CH=1,CH+显示空格Cl自减LOP2Cl=0?是Call spacecl=ch,cl!=0? Bh=ah or bh=cl ?
4、是Al=cl,cl自减否DL=AL,DL+0Call writecc 打印DLLOP2Fcl自减,bh 自增,display cl=ch cl!=0?LOP2R是否退出程序bl=cl or ah=cl ?是Call writecc 打印DL读取键盘输入CH>8?图1 主程序流程框图2.3详细设计功能2.3.1输出数字对称三角形功能 该子程序能够实现从键盘读取字符1后输出数字等腰三角形。开始从键盘读取字符是否为1NY输出对应数字三角形输出错误结束图2 输出数字对称三角形程序流程框图2.3.2数字对称三角形边框着色功能该子程序能够实现从键盘读取字符2后将输出数字等腰三角形外围数字用给定颜色显
5、示出来。开始从键盘读取字符是否为2NY将输出的数字对称三角形外围数字着色输出错误结束图3 三角形外围数字着色程序流程框图2.3.3姓名学号显示功能该子程序能够实现从键盘读取字符3后在输出数字等腰三角形下方显示给定的姓名学号。开始从键盘读取字符是否为3NY在三角形下方输出姓名学号输出错误结束图4 姓名学号显示程序流程框图2.3.4退出功能该子程序能够实现从键盘读取字符4后退出运行的程序。开始从键盘读取字符是否为4NY退出程序输出错误结束图5 退出程序流程框图2.3.5提示错误功能该子程序能够实现从键盘读取字符不是1234后输出Invalid input !以提示错误。开始从键盘读取字符是否14之
6、间?NY执行对应程序输出Invalid input !结束图6 提示错误程序流程框图START标志着程序开始执行;ZHU模块的功能是从键盘读取数据并判断函数的下一步执行情况,是最主要的模块之一;SHUCHU1,SHUCHU2,SHUCHU3,SHUCHU4分别表示按下数字键1,2,3,4,后程序跳到该段开始执行,属于主要的分支模块;DY1实现了打印数据的功能,其中,LOP2F实现打印左边数据,LOP2F0实现对左边边沿数据的着色LOP2G实现打印右边数据,LOP2G0实现对右边边沿数据的着色;CRLF可以实现数据输出前对磁盘的初始化,OUTX用于显示输出字符,SPACE用于对数据输出时输出数据
7、地址的清空,DISPLAY实现打印要输出的字符;CLRSLR的功能是清标准屏子程序;WRITECC为色彩字符输出子程序。在打印左边数据时,CL、AH用于判断打印的数据是否在左边边沿,CL、BH用于判断打印的数据是否属于左边数据的最后一行;在打印右边数据时,AH用于判断打印数据是否属于右边数据的最后一行,BL用于判断打印的数据是否在右边边沿;AL用于存放将要打印的数据;CH用于判断打印是否该结束;DL存放打印字符的ASCLL码,DH存放打印字符的颜色值。3.设计结果与分析3.1调试程序 启动DEBUG:D>DEBUG EXAM1.EXEA汇编-A14CA:0000U反汇编:T单步执行:G执
8、行:3.2运行程序(1)将汇编源代码在汇编软件MASM.EXE的汇编下生产DY.obj文件,用连接软件LINK.EXE对目标文件DY.obj,进行连接生成可执行文件DY.exe文件。其文件生成过程如图所示。在DOS的操作环境下,运行模拟显示这个汇编程序,运行的结果如图7所示。图7 程序主界面图(2)当用户输出字符1时,程序执行功能1,如图8所示。图8 功能1运行结果(3)当用户输入字符2,程序执行功能2,结果如下图所示。图9 功能2运行结果(4)当用户输入字符3,程序执行功能3,结果如下图所示。图10 功能3运行结果(5)当用户输入字符4,程序退出。 (6)当用户输入除上述字符以外其他键,程序
9、提示错误,结果如下图所示。 图11 提示错误功能运行结果4.总结在短暂几天的时间里,汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固了学过的知识,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令,进一步了解到了汇编语言的一些基本的指令,以及各个寄存器的功能及使用的方法。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,这对程序的调试是非常重要的。通过这次实际动
10、手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。 在这次程序设计的过程中,在设计的过程中不断地修改,改进,增强了自己分析问题解决问题的能力;在不断地调试过程中,不断的发现问题,解决问题,通过查资料,翻阅相关的书籍,以及向同学们请教,来逐一的解决各个问题。同时也更深的了解到了寄存器,存储器等的工作原理以及需要注意的一些问题。 此次课程设计收获颇多,不仅仅是体会到了分析问题,想出解决方案的重要性,更是在编写代码转换这一程序的过程中,了解到每一个系统都是由许多的子功能组成的,我们在编写的过程中,可以先把每一个子功能分开编写,这样更容
11、易发现错误,尽快的想出解决的方法,在将每一个子功能编写完毕后,逐一的将它们嵌入到主菜单中去,实现一个完整的系统。 另外,在每一个子功能的编写过程中,需要十分的注意到各个变量名的统一化,以便于将其嵌入到主菜单中去,在编写标识符的名字的时候,尽量要做到看名字知其含义,使程序的可读性进一步增高。 在编写代码转换程序的过程中,更是体会到了科学的严谨性,每一个小小的错误都不容忽视,再细小的地方都需要注意,否则将会导致程序的错误。不管在做什么,都需要十分的认真和谨慎,将每一步都做到最好。 当设计一步步接近成功,每一个子功能调试正确,都会让自己感到很高兴,从中体会到了编程的乐趣,让自己更有信心,增强了对汇编
12、语言程序设计的兴趣。5.参考文献1 杨文显,宓双,胡建人.新编汇编语言程序设计M,北京:清华大学出版社,2010:20-582 朱玉龙,任文览等.汇编语言程序设计M,北京:清华大学出版社,2003:67-893 吴向军等.汇编语言程序设计M,北京:高等教育出版社,2002:98-1194 沈美明等.IBM-PC汇编语言及程序设计实验教程M,北京:清华大学出版社 ,2001:45-675 钱晓捷等.汇编语言程序设计M, 北京:电子工业出版社,2000:1-246 李珍香等.汇编语言程序设计案例精编M,北京:中国水利水电出版社,2004:5-167 白小明.汇编语言程序设计M,北京:中国铁道出版社
13、,2009:56-768 王成耀,姚琳.汇编语言程序设计M,北京:机械工业出版社,2003:34-469 范立南, 谢子殿. 单片机原理及应用教程M. 北京:北京大学出版社, 2006.1:123-13010 沈美明等.IBM-PC汇编语言及程序设计实验教程M,北京:清华大学出版社 ,2001.2:101-1136. 附录 源代码:DATA SEGMENTNUM DB 0AH,0DH,'F1459106 lizhihong',0ah,0dh,'$'num0 DB0AH, 0DH, '1shuchusanjiaoxing', 0AH, 0DHDB0
14、AH, 0DH, '2color' DB0AH, 0DH, '3name and studentID' DB 0AH, 0DH, '4quit'num1 db 'Invalid input !','$'DATA ENDSSTAK SEGMENT STACK DW 100H DUP(?)STAK ENDSCODE SEGMENT ASSUME CS:CODE,SS:STAK,DS:DATASTART: MOV AX,DATA MOV DS,AX;=MAIN()= MOV DH,1 MOV CH,01HZHU: mov
15、 ah,02h mov bh,0 mov dh,11 ;设置提示行号 mov dl,6 ;设置提示列号 int 10h CALL CRLF MOV DX,offset NUM0 mov ah,9 int 21h ;显示提示 MOV AH,01h INT 21H ; mov ah,0h ; int 16h CMP AL,31h JE SHUCHU1 CMP AL,32h JE SHUCHU2 CMP AL,33h JE SHUCHU3 CMP AL,34h JE over call clrscr mov ah,02h mov bh,0 mov dh,10 ;设置提示行号 mov dl,0 ;设置
16、提示列号 int 10h MOV DX,OFFSET NUM1 mov ah,9 int 21h jmp zhuSHUCHU1: mov ah,01h int 21h cmp al,0dh jne zhu CALL CLRSCR CALL CRLF CALL CRLF mov dh,14 CALL DY1 JMP ZHU SHUCHU2: mov ah,01h int 21h cmp al,0dh jne zhu CALL CLRSCR CALL CRLF CALL CRLF mov dh,0 CALL DY1 JMP ZHU SHUCHU3:mov ah,01h int 21h cmp al
17、,0dh jne zhu CALL CLRSCR CALL CRLF CALL CRLF mov dh,0 CALL DY1 MOV DX,OFFSET NUM MOV AH,9 INT 21H ; MOV AH,1 ; INT 21H JMP ZHUOVER: MOV AH,4CH INT 21HDY1 PROC NEAR push ax push bx push cx push dx LOP2: ;-PRINT SPACE- MOV CL,11 SUB CL,CH LOP2E: CALL SPACE DEC CL JNZ LOP2E;-PRINT 左- MOV CL,CH mov bh,8
18、 mov ah,8 ;ah左边延 LOP2F: CMP CL,1 JL LOP2FEXIT cmp bh,ah je lop2F0 cmp bh,cl ;bh左下 jz lop2F0 MOV AL,CL CALL DISPLA DEC CL JMP LOP2F lop2F0: ; mov dh,2 mov dl,cl add dl,'0' call writecc dec cl dec bh inc ah jmp lop2FLOP2FEXIT:;-PRINT 左-End-;-PRINT 右- MOV CL,CH mov bl,7 ;右边延 mov ah,1 ;ah右下 MOV
19、BH,2LOP2G: DEC CL JZ LOP2GEXIT cmp bl,cl je lop2G0 cmp ah,cl jz lop2G0 MOV AL,BH CALL DISPLA INC BH JMP LOP2G lop2G0: mov dl,bh add dl,'0' call writecc dec bl dec ah inc bh jmp lop2G LOP2GEXIT:;-PRINT 右-End- CALL CRLF INC CH CMP CH,8 JBE LOP2;= pop dx pop cx pop bx pop ax RET DY1 ENDP ;-CRLF
20、 PROC NEAR PUSH AX PUSH DX MOV AH,2 MOV DL,0AH INT 21H MOV DL,0DH INT 21H POP DX POP AX RETCRLF ENDPOUTX PROC NEAR PUSH AX PUSH DX MOV AH,2 INT 21H POP DX POP AX RETOUTX ENDP;-SPACE PROC NEAR PUSH AX PUSH DX MOV AH,2 MOV DL,' ' INT 21H POP DX POP AX RETSPACE ENDP;-DISPLA PROC NEAR PUSH DX MOV DL,AL ADD DL,'0' CALL OUTX POP DX RETDISPLA ENDP;-;程序名称:Clrscr;程序功能:清标准屏子程序;入口条件:无; 出口:无;影响寄存器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江货运从业资格证模拟
- 2025年成都b2货运资格证多少道题
- 加入学生会的演讲稿15篇
- 2025个人股权转让协议书范本及法律风险提示2篇
- 2025年度文化产业发展专项资金使用及监管合同4篇
- 2025年度新材料研发场委托招聘协议3篇
- 2025年度信息技术项目临时工雇佣合同范本3篇
- 二零二五年度土地租赁合同法律风险防控协议
- 2025年度UPS不间断电源设备销售与产品研发合作合同3篇
- 二零二五年度婴幼儿奶粉品牌授权专卖店加盟合同协议书
- 2025年安庆港华燃气限公司招聘工作人员14人高频重点提升(共500题)附带答案详解
- 人教版(2025新版)七年级下册数学第七章 相交线与平行线 单元测试卷(含答案)
- GB/T 44351-2024退化林修复技术规程
- 完整2024年开工第一课课件
- 从跨文化交际的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中药饮片培训课件
- 医院护理培训课件:《早产儿姿势管理与摆位》
- 《论文的写作技巧》课件
- 空气自动站仪器运营维护项目操作说明以及简单故障处理
- 2022年12月Python-一级等级考试真题(附答案-解析)
- T-CHSA 020-2023 上颌骨缺损手术功能修复重建的专家共识
评论
0/150
提交评论