1、汇编语言是一项实用性很强的技术,学完教学大纲规定的全部内容,完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言课程设计方法,提高分析问题,解决问题的综合应用能力。学会查阅和汇编语言相关的规范,手册等技术资料。能正确绘制和使用流程图。掌握汇编语言程序设计和程序调试的基本技能,能进行基本的软件设计。1.2 课程设计内容此课程设计中,实现的主要功能是在屏幕的顶端排列一排英文字母,底端对应排列一排小球或小方块,屏幕顶端的英文字母以一定的速度随机下落, 落到底端的小球或小方块处, 小球或小方块消失,但如果在英文字母落到底端前,正确按键(落下的英文字母的键位),则英文字母
2、消失,英文字母消失或落到底端后,顶端原字母的空处出现另一新字母,按空格键则暂停,再按空格键字母继续下落,如过底端小球或小方块消失后,则不再出现。2. 开发环境2.1 软、硬件环境软件环境:操作系统:Windows 8 64位(DirectX 11)、 BIOS系统 DOS系统硬件环境:处理器:英特尔 第三代酷睿 i3-3110M 2.40GHz 双核 内存:4GB(三星 DDR3 1333MHz) 主硬盘:希捷 ST500LM012 HN-M500MBB (500GB/5400转/分) 显示器:三星 SEC3649(14 英寸)2.2 MASM开发环境Masm是汇编编译器,是微软公司开发的汇编
3、开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。使用步骤为:a使用编辑软件TE.EXE进行源程序的编写。 b使用汇编软件MASM.EXE对源程序汇编。 c使用连接软件LINK.EXE对目标文件进行连接。 d使用调试软件DEBUG.EXE对可执行程序进行调试。3.功能分析3.1 基本功能设计(1) 屏幕的顶端排列一排英文字母,底端对应排列一排小球或小方块。(2) 屏幕顶端的英文字母以一定的速度随机下落, 落到底端的小球或小方块处,小球或小方块消失。(3) 在英文字母落到底端前,
4、正确按键(落下的英文字母的键位),则英文字母消失。(4) 按空格键则暂停,再按空格键字母继续下落。(5)英文字母消失或落到底端后,顶端原字母的空处出现另一新字母。(6)底端小球或小方块消失后,不再出现。(7)程序执行后,出现新界面.新界面应包含以下内容: a.显示时间 b.按回车键继续 c.按ESC键返回主界面 d.按E键退出程序3.2系统程序流程图图1 打字游戏程序流程图4. 调试和运行程序4.1 程序调试(1)打开windows命令窗口,进入masm程序的安装目录,汇编源文件,如图2:图2 文件链接图(2)链接原文件,并运行可执行文件,如图3:图3 运行可执行文件图4.2 程序运行(1)进
5、入主程序段显示提示信息,程序功能实现如图4所示:图4 程序主界面图(2)按回车键进入打字练习页面,并且开始练习打字,如图5:图5 打字主界面图(3)进入游戏后,随机落下一字母,如果按下空格,则暂停。如图6所示:图6 游戏中按下空格暂停游戏界面(4)在打字练习过程中,按空格键暂停,按“ESC”键为返回主页面。最后练习打字结束按“E”退出程序,如图7所示:图7 回到主界面图5. 课程设计总结在短暂几天的时间里,汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固了
6、学过的知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用DEBUG指令。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug命令,这对程序的调试是非常重要的。通过这次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。6. 参考文献1 杨文显,宓双,胡建人.新编汇编语言程序设计M,北京:清华大学出版社,2010:20-582 朱玉龙,任文览等.汇编语言程序设计M,北京
7、:清华大学出版社,2003:67-893 吴向军等.汇编语言程序设计M,北京:高等教育出版社,2002:98-1194 沈美明等.IBM-PC汇编语言及程序设计实验教程M,北京:清华大学出版社 ,2001:45-675 钱晓捷等.汇编语言程序设计M, 北京:电子工业出版社,2000:1-246 李珍香等.汇编语言程序设计案例精编M,北京:中国水利水电出版社,2004:5-167 白小明.汇编语言程序设计M,北京:中国铁道出版社,2009:56-768 王成耀,姚琳.汇编语言程序设计M,北京:机械工业出版社,2003:34-469 范立南, 谢子殿. 单片机原理及应用教程M. 北京:北京大学出版
8、社, 2006.1:123-13010 沈美明等.IBM-PC汇编语言及程序设计实验教程M,北京:清华大学出版社 ,2001.2:101-113附录:源程序代码 INIT_GAME MACRO OP1,OP2,OP3,OP4,OP5,OP6 MOV CX,00H MOV DH,OP1 MOV DL,OP2 OP6: MOV AH,02H MOV BH,00H INT 10H PUSH CX MOV AH,0AH MOV AL,OP3 MOV CX,01H POP CX INC CX INC OP4 CMP CX,OP5 JNE OP6 ENDM CLEAR_SCREEN MACRO OP1,O
9、P2,OP3,OP4;本段程序主要是通过定义变量和调用实现清屏宏定义 MOV AH,06H MOV AL,00H MOV BH,07H MOV CH,OP1 MOV CL,OP2 MOV DH,OP3 MOV DL,OP4 MOV DH,00H MOV DL,00H MENU MACRO OP1,OP2,OP3 ; 本段程序主要是通过定义变量和调用来实现菜单显示宏定义 MOV AH,09H LEA DX,OP3 INT 21H DATA SEGMENT ZK DB WELCOME TO PLAY$ NO DB DATE:2014-6-25$ MEG DB PRESS ENTER KEY TO
10、CONTINUE.$ MEG1 DB WHEN A LETTER IS DROPPING,PLEASE HIT IT!$ MEG2 DB PRESS SPACE KEY TO PAUSE! MEG3 DB PRESS ESC KEY TO RETURN MAIN INTERFACE! MEG4 DB PRESS LETTER E TO EXIT! SPEED DW 600D LETTERS DB JWMILZOEUCGPRAVSKNTXHDYQFB DB IYTPKWNXLSVXRMOFZHGAEBUDJQNWIMZOEXRPHYSFQTVDCGLJUKDA LETTERS_BAK DB LE
11、TTER_COUNTER DB 0 LIFE_FLAG DB 78 DUP(0) POSITION_FLAG DB 78 DUP(0) PRESENT_POSITION DB 1 DATA ENDS本段主要用于主界面的显示,起到提示作用 CSEG SEGMENT PARA STACK stack DB 64 DUP(0) ENDS CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE,DS:DATA,SS:CSEG START: MOV AX,DATA MOV DS,AX MOV LETTER_COUNTER,00H MOV PRESENT_POSITION,1 LEA SI,POSITION_FLAG MOV AH,00H INIT_POSTION_FLAG: MOV SI,AH INC SI CMP CX,78D JNE INIT_POSTION_FLAG LEA DI,LETTERS LEA SI,LETTERS_BAK INIT_LETTERS: MOV AH,SI MOV DI,AH INC DI JNE INIT_LETTERS MOV AH,00H LEA SI,LIFE_FLAG INIT_LIFE_FLAG: JNE INIT_LIFE_FLAG
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1