《汇编语言推箱子课程设计-.pdf》由会员分享,可在线阅读,更多相关《汇编语言推箱子课程设计-.pdf(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 摘要本次课程设计是通过编写汇编语言程序,实现字符图形的显示,我们这组是每人用汇编语言程序 实现不同的字符显示,我的是显示字符安全。具体实现方法 可以在DOS环境下完成。编写完程序后分析并理解每条程序的意思,并解释主要程序的意思,最后调试出所要求的字符。在程序编写前,我首先对自己显示的图形进行了设计,确定了每个数字相对于前一个数字的位置,以便在编写程序的时候正确定义字符的属性,也为在显示的时候能够显示较好的效果,打下了基础。本次实验实验的编写环境是MASM,编译、链接也是在该环境下实现的。程序的运行我使用的是 DOS 环境。通过参考网上的一些原程序,我发现要编写好该程序,首先应该对BIOS
2、的中断 10熟悉,因此程序编写前,我先认真学习了该BIOS中断的有关功能。万事开头难,一旦了解了设计此程序的原理,并在此基础上掌握相关的技术,其他的工作也就跟着展开来。本次课程设计,是使用汇编作为开发语言实现功能要求。总所周知,汇编是一个低级语言,对硬件有很大的依赖性,在使用上也不及高级语言方便,但其在执行效率上比高级语言有很大的优势。本次课程设计,一方面让我们再次熟悉汇编指令,再次对算法的设计有一定的要求。另一方面让我们对较大汇编程序的编写有一个清晰的过程,学习把一个教大问题分解成若干个小问题,即子程序是一个良好的编程习惯。掌握汇编指令,学习的理论知识应用于解决实际的问题。关键词:推箱子,休
3、闲娱乐,拓展思维2 Abstract This course is designed by write assembly language program to realize the character graphic display,each of our group is in assembly language program to realize the different characters,according to my is the character-security.Concrete implementation method can be done in the DOS
4、 environment.After writing the program analysis and understand the meaning of each program,and explain the meaning of the main program,the final debugging the required characters.Before I write,I first has carried on the design to their own display graphics,identified before every number relative to
5、 the position of a number,so that at the time of write programs correctly define the character attributes,also for the display of time can show good effect,laid the foundation.This experiment experimental writing environment is MASM,compile,link,also is in the?The curriculum design,assembly as a dev
6、elopment language realization is the use of functional requirements.Known,the assembly is a low-level language,have great dependence on hardware,also as a high-level language in use is convenient,but its on the execution efficiency than a high-level language has a great advantage.The curriculum desi
7、gn,on the one hand,let us be familiar with assembly instruction again and again to the design of algorithm has certain requirements.On the other hand let us on large assembler.Write a clear,the process of learning a teaching big problem is decomposed into several small problems,namely the subroutine
8、 is a good programming habits.Master the assembly instruction,learning theoretical knowledge is applied to solve the actual problem.Key words:Sokoban game,recreation,creative thinking 3 目 录摘要.11、绪论.41.1 课题研究背景和意义.41.2 推箱子游戏发展现状.41.3 设计方案.52、程序设计说明及代码.62.1 初始化模块.62.2 功能控制模块(功能实现).112.3 游戏数据模块.152.4 游
9、戏设计模块.172.4.1.数据类的设计与实现.172.4.2 设定数据结构.183、游戏数据流程和设计方案.193.1 数据流程和功能介绍.193.2 设计目的.193.3 主流程界面设计.193.4 游戏设计任务和功能.20 4.程序调试记录.22 5 总结.26参考文献 .27致谢.284 1、绪论1.1 课题研究背景和意义推箱子是一款来自日本的古老游戏,其设计目的是训练人的逻辑思维能力。游戏场景一般是设定在空间狭小的仓库中,要求把箱子摆放到指定位置。这就要求玩家巧妙的运用有限的空间和通道,合理的安排箱子的位置和移动次序才可能完成任务。随着计算机游戏的发展,很多编程爱好者基于该游戏的思想
10、开发了出各种版本、各种类型的推箱子。这其中也包括很多手机版本的实现,伴随着手机与计算机的普及,很快推箱子游戏便进入了千家万户。如今,游戏机风行的程度,是第一台电子游戏机的研制者诺兰?布什纳尔先生始料不及的。在全世界最大的城市,直至最小的村庄,从纽约最辉煌的游乐场,到高加索最小的乡镇儿童娱乐点,在千家万户,正在进行着千千万万这样的“战斗”,伴随着无数成功与失败,兴奋与懊丧。游戏机带来了一个全球性的疯狂症,其他任何娱乐与之相比都望尘莫及。然而,究竟是什么原因使游戏机如此风行呢?在回顾了游戏机发展简史之后,我们不难悟出,技术进步在游戏机发展过程中起到了极大的促进作用。但是,技术进步绝不是游戏机风行的
11、唯一因素。随着终端设备开发能力的加强,作为娱乐终端的游戏机也得到了很大程度的发展。这也加速了游戏机在全球风行程度,所以对于游戏机的研究和设计具有很重要的意义,这也是本课题研究的来源。1.2 推箱子游戏发展现状本文针对推箱子游戏机的设计首先介绍了选题的要求,之后详细叙述了软件和硬件的设计过程。最后论文对设计进行了总结,对设计中可以进一步改善的地方提出了建议。在时钟脉冲的作用下,各个按键都能按照事先设定好的规则进行游戏控制。确定键能使界面从初始化显示切换到游戏界面显示,上下左右键控制箱子的移动方向,如果可以移动则移动方块同时跟踪人物的位置及刷新动态数组的内容。5 在游戏的同时程序会随时记录玩家所走
12、的游戏步数、游戏时间,直至本关通过,在进入下一关的同时更新地图并刷新游戏步数和时间。选关键用于选择游戏关数,在游戏过程中这个键任何时候都有效,当按下选关键后,游戏地图返回第一关,再次按下时游戏进入二关,这样每按下一次键游戏关数加一,如果游戏到了第最后一关将自动返回第一关1.3 设计方案1.3.1.模块划分本游戏分五个模块(1)初始化模块,对游戏界面进行初始化操作,包括界面切换、控制声音播放和游戏的暂停与恢复,以及手机返回键的设置。(2)功能实现模块,主要是对游戏中各个环节进行绘制,设计出系统地图,记录玩家所用步骤,对玩家触屏的设定,针对不同的手机分辨率绘制界面,音乐功能调用,游戏中所有文字的提
13、示信息以及游戏中背景和文字颜色大小等设置的实现。(3)游戏设计模块,实现玩家控制小乌龟的操作,使之能够操作箱子到各个位置,以完成游戏设定的任务。(4)游戏数据模块,主要是对玩家编辑的自定义地图和玩家选择系统设置状态的保存,以及游戏数据合理性的判断。(5)功能控制模块,控制游戏功能的实现,包括创建菜单、调用系统音乐、获取当前系统状态、获取游戏界面图标等参数、保存游戏。2.6.2 系统功能结构图6 系统功能模块初始化功能控制模块功能实现模块游戏设计模块游戏数据模块图 3.1 系统功能结构图2、程序设计说明及代码2.1 初始化模块(1)设计游戏所需的一个简单的窗口应用程序,程序预处理部分包括加载头文
14、件、定义全局变量和定义数据结构,并对它们进行初始化工作,游戏从第一关开始,按上下左右方向键控制小人移动来推动箱子,可以在游戏中的任何时候按 Esc 键退出。如果游戏无成功希望,可以按空格键回到当前任务的开始状态;如果成功完成当前关,则进入下一关,如果当前关是最后一关,则显示通关信息,提示游戏结束。【程序如下】:.386.model flat,stdcall option casemap:none include CBox.inc 7 include StoreHouse.inc.const MAP_TOP equ 32 MAP_LEFT equ 1 xBmBack dd 0 xBmWall d
15、d 30 xBmRoad dd 60 xBmBox1 dd 90 xBmBox2 dd 120 xBmObject dd 150 xBmMan dd 180 szCaption db RedBox,0 szLoadError db Load Resource Error!,0 szAlreadyMaxGate db Already Max Gate!,0 szOutOfRange db Out of Range!,0 szSuccessMsg db Your are success!,13,10,Are you want to next gate?,0 FmtStr db val=%d,0 F
16、mtGate db -No.%d,0.data?bmToolbar dd?BackDc dd?hBitMap dd?szErrorMessage db 256 dup(?)Map db 14D*12D dup(?);14 x 12 Grid 8 ManXPos dd?ManYPos dd?CurrGate dd?CurrStep dd?.code start:invoke GetModuleHandle,NULL mov hInstance,eax invoke GetCommandLine mov CommandLine,eax invoke InitCommonControls invok
17、e WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT invoke ExitProcess,eax WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShow:DWORD LOCAL wc:WNDCLASSEX LOCAL msg:MSG mov wc.cbSize,SIZEOF WNDCLASSEX mov wc.style,CS_HREDRAW or CS_VREDRAW mov wc.lpfnWndProc,OFFSET WndProc mov wc.cbC
18、lsExtra,NULL mov wc.cbWndExtra,DLGWINDOWEXTRA push hInst pop wc.hInstance mov wc.hbrBackground,COLOR_BTNFACE+1 mov wc.lpszMenuName,OFFSET MenuName 9 mov wc.lpszClassName,OFFSET ClassName invoke LoadIcon,NULL,IDI_APPLICATION mov wc.hIcon,eax mov wc.hIconSm,eax invoke LoadCursor,NULL,IDC_ARROW mov wc.
19、hCursor,eax invoke RegisterClassEx,addr wc invoke CreateDialogParam,hInstance,addr DlgName,NULL,addr WndProc,NULL invoke ShowWindow,hWnd,SW_SHOWNORMAL invoke UpdateWindow,hWnd.while TRUE invoke GetMessage,addr msg,NULL,0,0 .BREAK.if!eax invoke TranslateMessage,addr msg invoke DispatchMessage,addr ms
20、g.endw mov eax,msg.wParam ret WinMain endp WndProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM LOCAL ps:PAINTSTRUCT LOCAL Dc:HDC mov eax,uMsg.if eax=WM_KEYDOWN invoke KeyDownProc,wParam.elseif eax=WM_INITDIALOG push hWin 10 pop hWnd invoke GetDlgItem,hWin,IDC_TBRMAIN invoke DoToolBar,hInsta
21、nce,eax invoke LoadRes.if eax=FALSE invoke MessageBox,hWin,Addr szErrorMessage,Addr szLoadError,MB_ICONERROR.endif invoke InitStBar invoke SelectGate,1.elseif eax=WM_COMMAND mov eax,wParam and eax,0FFFFh.if eax=IDM_FILE_EXIT invoke SendMessage,hWin,WM_CLOSE,0,0.elseif eax=IDM_HELP_ABOUT invoke Shell
22、About,hWin,addr AppName,addr AboutMsg,NULL.elseif eax=IDC_TBB_NEW invoke SelectGate,CurrGate.elseif eax=IDC_TBB_PREV mov eax,CurrGate dec eax invoke SelectGate,eax.elseif eax=IDC_TBB_NEXT invoke NextGate.elseif eax=IDC_TBB_ABOUT invoke ShellAbout,hWnd,Addr AppName,Addr AboutMsg,NULL .endif.elseif ea
23、x=WM_PAINT invoke BeginPaint,hWin,Addr ps 11 mov Dc,eax invoke WMPaint,Dc invoke EndPaint,hWin,Addr ps.elseif eax=WM_CLOSE invoke DestroyWindow,hWin.elseif uMsg=WM_DESTROY invoke FreeRes invoke PostQuitMessage,NULL .else invoke DefWindowProc,hWin,uMsg,wParam,lParam ret.endif xor eax,eax ret 2.2 功能控制
24、模块(功能实现)(2)小人移动的方向有4 个,move()函数(处理小人移动的函数)对这 4 个方向移动的处理都一致,只是调用函数时的参数有所不同。首先判断小人移动的方向,然后根据小人所处世的当前状态、下一步状态或者下下一步状态进行适当的处理。KeyDownProc endp ManMove proc vKey:DWORD LOCAL NewX:DWORD LOCAL NewY:DWORD LOCAL NewX2:DWORD LOCAL NewY2:DWORD LOCAL M1:byte LOCAL M2:byte LOCAL nPos1:DWORD LOCAL nPos2:DWORD 12
25、push esi mov eax,ManXPos mov NewX,eax mov NewX2,eax mov eax,ManYPos mov NewY,eax mov NewY2,eax mov eax,vKey .if eax=VK_UP dec NewY dec NewY2 dec NewY2 .elseif eax=VK_DOWN inc NewY inc NewY2 inc NewY2 .elseif eax=VK_LEFT dec NewX dec NewX2 dec NewX2 .elseif eax=VK_RIGHT inc NewX inc NewX2 inc NewX2 .
26、else ret .endif 13 mov esi,offset Map ;Pos=y*14+x ;Get M1 mov eax,NewY mov ebx,14D mul bx add eax,NewX mov ebx,eax mov nPos1,eax mov al,esiebx mov M1,al ;Get M2 mov eax,NewY2 mov ebx,14D mul bx add eax,NewX2 mov ebx,eax mov nPos2,eax mov al,esiebx mov M2,al mov al,M1 .if(al=MAP_ROAD|al=MAP_OBJECT)pu
27、sh NewX pop ManXPos push NewY pop ManYPos .elseif al=MAP_BOX1;push box mov al,M2 .if al=MAP_ROAD;push ok mov ebx,nPos2 14 mov al,MAP_BOX1 mov esiebx,al mov ebx,nPos1 mov al,MAP_ROAD mov esiebx,al push NewX pop ManXPos push NewY pop ManYPos .elseif al=MAP_OBJECT mov ebx,nPos2 mov al,MAP_BOX2 mov esie
28、bx,al mov ebx,nPos1 mov al,MAP_ROAD mov esiebx,al push NewX pop ManXPos push NewY pop ManYPos .endif .elseif al=MAP_BOX2 mov al,M2 .if al=MAP_ROAD mov ebx,nPos2 mov al,MAP_BOX1 mov esiebx,al mov ebx,nPos1 mov al,MAP_OBJECT mov esiebx,al push NewX 15 pop ManXPos push NewY pop ManYPos .elseif al=MAP_O
29、BJECT mov ebx,nPos2 mov al,MAP_BOX2 mov esiebx,al mov ebx,nPos1 mov al,MAP_OBJECT mov esiebx,al push NewX pop ManXPos push NewY pop ManYPos .endif .else .endif invoke Repaint pop esi ret 2.3 游戏数据模块(3)函数实现的功能分别是人空地移动箱子到空地、从目的地移动箱子到空地、从空地移动箱子到目的地和中从目的地移动箱子到目的地。X、y 指明小人当前所处的位置,字符a 表示移动的方向,有“u”、“d”、“l”和
30、“r”4 个值,分别表示向上、下、左、右移动。这几个函数的实现原理大致相似。对于前面两个函数,首先判断移动的方向,人小人所在的位置沿着移动的方向移动一步画小人,移动两步画箱子,并设置状态为“b”;16 对于后面两个参数,首先判断移动的方向,从小人所在的位置沿着移动方向移动一步画小人,移动两上在目的地画箱子,并设置状态为“i”,表明箱子在目的地上。ManMove endp XYtoPos proc x:DWORD,y:DWORD;pos=y*14+x Zero-Based mov eax,y mov ebx,14D mul bx add eax,x ret XYtoPos endp Repain
31、t proc LOCAL R:RECT invoke GetClientRect,hWnd,Addr R invoke InvalidateRect,hWnd,Addr R,0 ret Repaint endp Check proc ;Check Success and return true or false LOCAL Result:DWORD push esi push TRUE pop Result lea esi,Map 17 mov ecx,14D*12D mov ebx,0 1:mov al,esiebx inc ebx cmp al,MAP_OBJECT jz 2 dec ec
32、x jnz 1 jmp ExitCheck 2:push FALSE pop Result ExitCheck:mov eax,Result pop esi ret 2.4 游戏设计模块2.4.1.数据类的设计与实现该类主要用于对地图数据的保存与提取,在保存时,判断玩家编辑的地图是否合理,如果不合理则提示相应信息,只有合理的地图才能保存。在提取地图信息的时候也进行一次检查,如果编辑地图不合理则载入默认设置。关键代码及说明如下:通过public static boolean exportDataToFile(int editDataArray)方法将地图数据写入到文件中;通过public sta
33、tic boolean checkUserFile()检查用户编辑数据是否合理;通过public static int importDataFromFile()从文件中读取数据载入地图。18 2.4.2 设定数据结构例如行列数必须在15*15 之间,玩家绘制地图时,当前所选游标实现添加、删除、替代等功能,判断玩家是否完成任务。Check endp InitStBar proc LOCAL StbarHandle:DWORD invoke GetDlgItem,hWnd,IDC_SBR1 mov StbarHandle,eax invoke SendMessage,StbarHandle,SB_
34、SIMPLE,1,0 ;invoke SendMessage,StbarHandle,SB_SETPARTS,1,150 ret InitStBar endp ShowMessage proc Val:DWORD push eax invoke wsprintf,Addr szErrorMessage,Addr FmtStr,Val invoke MessageBox,hWnd,Addr szErrorMessage,Addr szCaption,MB_ICONINFORMATION pop eax ret ShowMessage endp end start 19 3、游戏数据流程和设计方案
35、3.1 数据流程和功能介绍本设计基本实现了可以在PC平台上运行的推箱子游戏,本游戏分五个模块:1、初始化模块;2、功能实现模块;3、游戏设计模块;4、游戏数据模块;5、功能控制模块。本游戏是一款益智类游戏,所以操作十分简单。游戏中玩家可以用键盘的上、下、左、右键控制小人的移动位置,也可以直接触摸手机屏幕完成相应操作。游戏规则也十分简单,玩家在一个有限空间内,将木箱放到指定的位置。箱子只能推不能拉,而且一次只能推动一个箱子,胜利条件是把所有箱子都推到目的地。3.2 设计目的(1)此次的设计是开发一款可在PC平台上运行的推箱子游戏程序,可流畅运行游戏,编辑地图等(2)进一步学习和掌握汇编语言程序的
36、编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。3.3 主流程界面设计在策划推箱子游戏时,首要考虑到要设计一个优美的游戏界面,操作起来更加人性化,即玩家可以用键盘的上、下、左、右键控制小乌龟的移动位置,也可以直接触摸手机屏幕完成相应操作。在画面方面也要更加清新,方便各个年龄段的玩家使用。我对这个游戏的定义是一个轻量级的益智游戏,不存在复杂的情节,做的主要工作为设计游戏各关仓库的形状、大小、可通过区域、各关中箱子的初始位置与目的地。当然在正式开始编写程序时,需要上网搜集了游戏中要用到的图片、声音等,收集一些有用的素材。20 图 1.1 界面设计图图 1.2
37、 数据流程图3.4 游戏设计任务和功能3.4.1.基本要求(1)每关卡箱子数目不定;(2)主角和箱子只能呆在通道及目标位置上移动,不能穿墙;推箱子游戏初始化模块画图模块移动箱子模移动小人模功能控制模21(3)主角不能穿过箱子;(4)箱子数量和目标位置数量相等(但每个箱子并不和唯一的目标位置一一对应);(5)主角可以移动和推动木箱(响应键盘方向键);(6)主角只能往前推动箱子,不能向后或者向侧面拉箱子;(7)主角不能同时推动两个箱子;(8)箱子移动方向正前方紧挨墙壁,不可推动;(9)允许撤销以及重做游戏步骤;(10)将所有箱子推到设定位置则通过本关,自动进入下一关卡;(11)记录每一关中玩家的移
38、动步数;3.4.2.地图编辑器(1)可通过地图编辑器生成地图;(2)地图由小正方块拼接组成;(3)地图中每一格可以是墙、通道、木箱、目标位置;(4)游戏主角所在位置同时必须是通道或者目标位置;(5)一张地图中主角数目有且仅有一个;(6)一张地图中箱子数目必须与目标位置数目相等;(7)允许对正在编辑的地图清除或者替换某一格中的内容;(8)地图中一格不允许墙、通道、木箱、目标位置中两个及以上共存,最后添加的类型为该格代表的类型;(9)通过地图编辑器生成的地图可以被游戏程序调用;3.4.3.扩展功能(1)保存自定义地图,重启程序后依然可以编辑和调用运行该地图;(2)屏幕分辨率自适应;(3)资源文件支
39、持简体中文和英文;(4)菜单功能,玩家通过看目录按对应的键可以进入对应的功能菜单,其中 1 进入游戏,2 选择游戏关卡,3 游戏帮助指南,4 退出游戏。(5)游戏功能:玩家可以通过操纵键盘中的上下左右键进入游戏进行各种操作来完成游戏。(6)循环功能:当玩家正在游戏的时候如果某一步走错了,导致游戏无法22 完成,可以随时重新开始游戏来完成关卡,游戏过程中可以随时按Ctrl+V 退出游戏。(7)顺序功能:当玩家完成了某一关之后,随着进入下一关门可以按顺序进入下一关,继续开始更有挑战的关卡,如果该关是最后一关,则显示通关完成。4.程序调试记录程序调试,是将编制的程序投入实际运行前,用手工或编译程序等
40、方法进行测试,修正语法错误和逻辑错误的过程。这是保证游戏正常运行的必不可少的步骤。编完计算机程序,得调试所写程序是否正确,是否能满足所要求的功能启动游戏后便可直接进入游戏主界面,主界面上玩家可以自由选择对游戏的操作。该游戏的运行步骤与调试结果如下:1.启动游戏后游戏主界面,效果如图所示。图 2.1 游戏启动图2.当你完成某一关卡时,弹出一对话框,点击“确定”进行下一关卡,点击“取消”继续该关卡。23 图 2.2 通关图3.点击“,”即可进入玩家自己已经编辑好的游戏中,界面设计和系统设置的关卡相同,过关之后,自动进入系统设置的第一关卡。效果如图所示。图 2.3 选择关卡图4.点击“文件”,即可进
41、入玩家自行编译游戏仓库中。玩家可以在该标题栏中选择关卡难度或退出该游戏。24 图 2.4 自行编译关卡图5.点击“编译”,即可进入玩家自行编译游戏仓库中。玩家可以在游戏的格中按照自己的意愿设计关卡(需要符合游戏自身规定)。该界面共有9 个选项键,分别是墙、路、目的地、箱子、小人、锁定、删除、保存、返回主菜单,玩家可以通过对应的数字按键或直接触控屏幕实现对应功能。效果如图所示。图 2.5 选择功能图25 6.点击游戏其他位置时,则弹出如下图所示的对话框,点击“确定”恢复正常。图 2.6 错误恢复图7.点击“工具栏”,则可以调试游戏。该界面介绍了关于本游戏的一些修改方法。效果如图所示。图 2.7
42、调试游戏图8.点击“退出”,则会退出游戏。图 2.8 退出游戏图26 5总结一周的汇编语言课程设计结束了,我的收获很大。通过课程设计的编程和对编程过程中遇到的问题的思考,有效的提高了我对汇编的认识和理解,切实的提高了我的编程能力,补全了我的不足。通过这次课程设计,我巩固了所学知识,能用汇编语言熟练地运用顺序、选择、循环三大结构,进一步掌握了各个指令的功能,特别是转向指令,掌握了子程序的定义及调用,以及正确地运用 DEBUG 指令。在整个程序的编写中,调试占了很大部分的时间。要想写好汇编语言的程序,必须认真对待代码的每一个细节,还必须熟练的掌握debug 命令,这对程序的调试是非常重要的。通过这
43、次实际动手能力的培养,我进一步熟悉了汇编语言的结构和使用方法,基本达到了能独立阅读、编制和调试一定规模的汇编语言程序的水平。本次汇编语言课程设计是利用我们平时所学的汇编知识编写一个成绩评定的小程序,刚拿到题目的时候还有点担忧。由于平时汇编语言的知识掌握的并不牢固,并且也没有过像这样的为期一周的汇编语言实践课程。但当静下心来仔细把问题读懂和头脑中有了大致思路的时候,这种担忧就完全消失了。其实这次课程设计并不要求你把书上各种指令及其工能掌握的很好并且能熟练的运用汇编语言编程,而恰恰是利用这次课程设计的机会来提高这方面的能力。这就是一个心态问题,看你有没有摆正心态,看你有没有面对挫折的勇气,如果一开
44、始就没摆正心态,思维就会堵塞,后面就更无法做下去了。这次课程设计让我更加懂得以后在面临困难与挫折的时候要有平和的心态,要有冷静的头脑。通过本次汇编语言课程设计,也让我更加明白实践的重要性,如果整天的学习课本上的理论知识而不拿来用那肯定是很烦的,况且汇编语言这门课本身学起来就很烦,尤其是要去理解各种指令的功能,还要学习相应的硬件知识。再者,学习理论知识的目的还是要拿来运用,通过实践来巩固所学的理论知识。并且通过这次课程设计实践,让我一改往日的厌学情绪,尤其是当程序运行正确的时候,那种来自内心的成就感,让我更加有信心学好汇编语言了。27 参考文献1 钱晓捷.汇编语言程序设计.北京:电子工业出版社,
45、2012.6 2 沈 美明、温 冬 婵 等.IBM-PC 汇编 语 言 程序 设计.北 京.清 华 大 学出 版社,2001.8 3 詹仕华等.汇编语言程序设计.北京:中国电力出版社,2008.2 4 詹仕华等.汇编语言程序设计习题解答及课程实验、设计辅导.北京:中国电力出版社,2008.2 5 王爽.汇编语言.北京:清华大学出版社2003.5 28 致谢本设计是在刘树群导师教授的悉心指导下完成的,导师渊博的知识,严谨的治学态度,一丝不苟的工作作风,平易近人的性格都是我学习的楷模。在论文的研究及整理期间,导师给了我很大的支持和鼓励,才使得论文得以顺利的完成,在此谨向导师表示忠心的感谢和崇高的敬意。同时感谢各位队友的支持,他们给我们提供了必要的素材,提供了很大的方便,感谢同班同学的帮助,在作论文期间,他们不仅在学习上对我有很大的帮助,还在生活上提供方便。这一周来,我和他们相处的是非常愉快的。同时还要感谢外班等同学,他们也给了我很大的支持和帮助。最后,感谢各位评委能在百忙之中对我的论文进行审察,由于本人知识有限,不足之处在所难免,还请各位评委指正。29
限制150内