1、中北大学汇编语言程序设计课 程 设 计 说 明 书学生姓名: 学 号: 学 院: 信息与通信工程学院 专 业: 自动化 题 目: 键盘输入及数据显示程序设计 指导教师:沈小林 职称:副教授 2012年6月24日 中北大学汇编语言程序设计实验课程设计任务书 11/12 学年第 二 学期学 院: 信息与通信工程学院 专 业: 自动化 学 生 姓 名: 学 号: 课程设计题目: 数据显示及键盘输入程序设计 起 迄 日 期: 6月18 日6月24日 课程设计地点: 中北大学 指 导 教 师: 沈小林 系 主 任: 王忠庆 下达任务书日期: 2011年06月 20 日课 程 设 计 任 务 书1设计目的
2、:通过键盘及显示程序设计掌握汇编语言程序在键盘输入及文本显示方面的编程过程。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):1、程序要求(1)能识别数字键、字母键(能区分大小写); (2)一次最多字符(含数字)输入不超过80个; (3)依次显示键盘输入的所有可显示字符。2、设计内容(1)根据要求确定解决问题的编程方法;(2)画出程序框图、设计源程序;(3)在计算机上汇编、链接所设计的程序;(4)按照要求调试程序,记录程序运行结果;(5)写出设计总结报告。设计报告主要内容包括:设计目的与要求、系统技术指标或设计要求、程序设计方案、主要参考资料及心得体会等3设计工作任务及工作量的要求
3、包括课程设计计算说明书、图纸、实物样品等:设计总结;程序清单;程序框图;参考文献等。【注】装订时依照封面、任务书、设计总结顺序一起装订。课 程 设 计 任 务 书4主要参考文献:1 王志军.汇编语言程序设计.大连:大连理工大学出版社,20032 梁发寅,宗大华. 汇编语言程序设计.北京:人民邮电出版社,20063 王爽.汇编语言.北京:清华大学出版社,20034 何超.汇编语言程序设计实验与习题解答.北京:机械工业出版社,20105 黄冰,覃伟年,黄志超.微机原理与应用.重庆:重庆大学出版社,20036 杨季文.汇编语言程序设计教程.北京:清华大学出版社,19987 罗万钧,罗方中.汇编语言程
4、序设计.西安:西安电子科技大学出版社8 吴向军,李磊,汇编语言程序设计实验辅导.西安:西安电子科技大学出版社9 杨素行,刘慧银.微型计算机系统原理及应用.北京:清华大学出版社,199510 冯康.汇编语言.武汉:武汉大学出版社5设计成果形式及要求:设计总结;参考文献等。6工作计划及进度:6月18日 6月19日6月20日 6月20日6月21日 6月22日6月23日 6月24日调研、资料收集;设计方案确定,设计程序 程序调试、程序必须调试通过。撰写总结、设计报告答辩系主任审查意见: 签字: 年 月 日一、 设计目的1、 通过程序设计和调试,加深对字符串程序设计的认识,掌握其调试方法;2、 通过键盘
5、及显示程序设计掌握汇编语言程序在键盘输入及文本显示方面的编程过程;3、 学会DOS中关于显示功能调用的用法;4、 领会修改显存方法显示字符。二、 程序设计要求 (1)能识别数字键、字母键(能区分大小写); (2)一次最多字符(含数字)输入不超过80个; (3)依次显示键盘输入的所有可显示字符。三、编程思路串(String)即数据串,是指存放在连续内存中的一组数据,通常表现为字节(或字)数组,串操作指令具有以下共性。1) 源串:地址由DS:SL表示。2) 目的串:地址由ES:DI表示。3) 自动修改地址:每次数据操作后,SI和DI自动递增或递减,取决于操作的数据类型(字节、字或双字)以及DF的值
6、。若DF=0,则SI和DI自动增加1、2或4;否则减1、2或4。可以使用CLD或STD指令设置DF。4) 计数器:使用重复前缀时,用CX显示数据个数,每重复一次操作,CX减1。从键盘输入一串字符串,通过指令STRING DB 80 DUP(?)来设置一次最多字符(含数字)输入不超过80个,能识别数字键、字母键。要使程序能够识别字母键的大小写,必须通过ASCII码来寻址识别。依次显示键盘输入的所有可显示字符,当用户按回车键时,输入结束。然后通过显示器显示输入的字符。 三、 程序框图开始结束设置可输入字符长度MAX=80按键输入字符串判断字符类型大写字母字符AZ数字字符0941H5AH30H39H
7、MAX减1MAX是否0Y是否按下回车Y输出可显示字符串小写字母字符az61H74H显示输入了一个数字显示输入一个小写字母显示输入一个大写字母五、程序清单:DATA SEGMENTSTRING DB 80 DUP(?)CAPITAL DB THIS IS A CAPITAL LETTEL SMALL DB THIS IS A SMALL LETTEL DIGITAL DB THIS IS A DIGITAL CHARACTERINPUT DB PLEASE INPUT CHARACTERMAX EQU 80DATA ENDSCODE SEGMENTMAIN PROC FAR ASSUME CS:
8、CODE,DS:DATASTART: PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV SI,0 MOV DI,0 MOV CX,MAXINPUT: LEA SI,STRING MOV AH,1 ;输入一个字符 INT 21H DEC CX CMP CX,0;判断是否输入80个字符 JZ DISP;若已经输入80个字符则输出显示所有输入的字符 CMP AL,0DH ;判断是否按下回车键 JE DISP ;按下则输出显示所有输入的字符 CMP AL,30H ;判断是否大于0 JAE NEXT1OTHER: JMP SHORT INPUTNEX
9、T1: CMP AL,39H ;判断是否是09 JAE NEXT2 MOV SI,AL ;是09存入字符串中 INC SI CALL DISPLAY1 ;调用显示输入的是数字 JMP SHORT INPUTNEXT2: CMP AL,41H ;判断是否大于A JAE NEXT3 JMP SHORT OTHER ;小于则转动其他字符处理NEXT3: CMP AL,5AH ;判断是否在AZ JAE NEXT4 MOV SI,AL;是AZ存入字符串中 INC SI CALL DISPLAY2;调用显示输入的是大写字母 JMP SHORT INPUTNEXT4: CMP AL,61H;判断是否大于a
10、JAE NEXT5 JMP SHORT OTHER;小于则转到其他字符处理NEXT5: CMP AL,7AH;判断是否大于z JAE OTHER;大于则转到其他字符处理 MOV SI,AL;是az存入字符串中 INC SI CALL DISPLAY3;调用显示输入的是小写字母 JMP SHORT INPUT;转动按键输入DISP: LEA DX,STRING;输出显示所有按下的字符 MOV AH,09H INT 21HDISPLAY1 PROC NEAR LEA DX,DIGITAL MOV AH,09H INT 21H RETDISPLAY2 PROC NEAR LEA DX,CAPITAL
11、 MOV AH,09H INT 21H RETDISPLAY3 PROC NEAR LEA DX,SMALL MOV AH,09H INT 21H RETCODE ENDSENDT STARTMAIN ENDP六、程序调试及运行结果分析1确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。如果没有创建过此目录,请用如下方法创建:通过Windows的资源管理器找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”“文件夹”,并把新建的文件夹命名为ASM。请把MASM.EXE、LINK.EXE、DENUG.EXE和TD.EXE都拷贝到此
12、目录中。2建立ASM源程序建立ASM源程序可以使用EDIT或NOTEPAD(记事本)文本编辑器。在Windows中点击桌面左下角的“开始”按钮选择“运行”在弹出的窗口中输入“EDIT.COM C:ASMHELLO.ASM”,屏幕上出现EDIT的编辑窗口,如图1所示。 图1 文本编辑器EDIT的编辑窗口窗口标题行显示了EDIT程序的完整路径名。紧接着标题行下面的是菜单行,窗口最下面一行是提示行。菜单可以用Alt键激活,然后用方向键选择菜单项,也可以直接用Alt-F打开File文件菜单,用Alt-E打开Edit编辑菜单,等等。如果键入EDIT命令时已带上了源程序文件名(C:ASMHELLO.ASM
13、),在编辑窗口上部就会显示该文件名。如果在键入EDIT命令时未给出源程序文件名,则编辑窗口上会显示“UNTITLED1”,表示文件还没有名字,在这种情况下保存源程序文件时,EDIT会提示输入要保存的源程序的文件名。编辑窗口用于输入源程序。EDIT是一个全屏幕编辑程序,故可以使用方向键把光标定位到编辑窗口中的任何一个位置上。EDIT中的编辑键和功能键符合Windows的标准。源程序输入完毕后,用Alt-F打开File菜单,用其中的Save功能将文件存盘。如果在键入EDIT命令时未给出源程序文件名,则这时会弹出一个“Save as”窗口,在这个窗口中输入你想要保存的源程序的路径和文件名。3用MAS
14、M.EXE汇编源程序产生OBJ目标文件源文件HELLO.ASM建立后,要使用汇编程序对源程序文件汇编,汇编后产生二进制的目标文件(.OBJ文件)。具体操作如下:方法一:在Windows中操作用资源管理器打开源程序目录C:ASM,把HELLO.ASM拖到MASM.EXE程序图标上。方法二:在DOS命令提示符窗口中操作选择“开始”“程序”“附件”“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:I:C: C:CD ASMC:ASMMASM HELLO.ASM操作时的屏幕显示如图2所示。图2 在DOS命令提示符窗口中进行汇编不管用以上二个方法中的哪个方法
15、,进入MASM程序后,都会提示让你输入目标文件名(Object filename),并在方括号中显示默认的目标文件名,建议输入目标文件的完整路径名,如:C:ASMHELLO.OBJ回车。后面的两个提示为可选项,直接按回车。注意,若打开MASM程序时未给出源程序名,则MASM程序会首先提示让你输入源程序文件名(Source filename),此时输入源程序文件名HELLO.ASM并回车,然后进行的操作与上面完全相同。图3 有错误的汇编过程例子如果没有错误,MASM就会在当前目录下建立一个HELLO.OBJ文件(名字与源文件名相同,只是扩展名不同)。如果源文件有错误,MASM会指出错误的行号和错
16、误的原因。图3是在汇编过程中检查出两个错误的例子。在这个例子中,可以看到源程序的错误类型有两类:警告错误(Warning Errors)。警告错误不影响程序的运行,但可能会得出错误的结果。此例中无警告错误。严重错误(Severe Errors)。对于严重错误,MASM将无法生成OBJ文件。此例中有两个严重错误。在错误信息中,园括号里的数字为有错误的行号(在此例中,两个错误分别出现在第6行和第9行),后面给出了错误类型及具体错误原因。如果出现了严重错误,你必须重新进入EDIT编辑器,根据错误的行号和错误原因来改正源程序中的错误,直到汇编没有错为止。4用LINK.EXE产生EXE可执行文件在上一步
17、骤中,汇编程序产生的是二进制目标文件(OBJ文件),并不是可执行文件,要想使我们编制的程序能够运行,还必须用连接程序(LINK.EXE)把OBJ文件转换为可执行的EXE文件。具体操作如下: 方法一:在Windows中操作用资源管理器打开源程序目录C:ASM,把HELLO.OBJ拖到LINK.EXE程序图标上。方法二:在DOS命令提示符窗口中操作选择“开始”“程序”“附件”“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入LINK命令:I:C: C:CD ASMC:ASMLINK HELLO.OBJ操作时的屏幕显示如图4所示。图4 把OBJ文件连接成可执行文件不管
18、用以上二个方法中的哪个方法,进入LINK程序后,都会提示让你输入可执行文件名(Run file),并在方括号中显示默认的可执行文件名,建议输入可执行文件的完整路径名,如:C:ASMHELLO.EXE回车。后面的两个提示为可选项,直接按回车。注意,若打开LINK程序时未给出OBJ文件名,则LINK程序会首先提示让你输入OBJ文件名(Object Modules),此时输入OBJ文件名HELLO.OBJ并回车,然后进行的操作与上面完全相同。如果没有错误,LINK就会建立一个HELLO.EXE文件。如果OBJ文件有错误,LINK会指出错误的原因。对于无堆栈警告(Warning:NO STACK se
19、gment)信息,可以不予理睬,它不影响程序的执行。如链接时有其它错误。须检查修改源程序,重新汇编、连接,直到正确。5执行程序建立了HELLO.EXE文件后,就可以直接在DOS下运行此程序,如下所示:C:HELLO回车C:程序运行结束后,返回DOS。如果运行结果正确,那么程序运行结束时结果会直接显示在屏幕上。如果程序不显示结果,我们如何知道程序是否正确呢?例如,这里的HELLO.EXE程序并未显示出结果,所以我们不知道程序执行的结果是否正确。这时,我们就要使用TD.EXE调试工具来查看运行结果。此外,大部分程序必须经过调试阶段才能纠正程序执行中的错误,调试程序时也要使用TD.EXE。七、心得体
20、会一周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何把握一件事情,如何去做一件事情,又怎么样完成一件事情。课程设计是我们专业课程知识综合应用的实践训练,这是我们迈向社会,从事职业工作前一个必不可少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句话的真正含义。我这次认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论
21、知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,虽然已经做过几次,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。回想自己在这段时间的设计情况,不尽如意。对此我思考过,理论知识自然是一个因素,然而更重要的是心态。现在发现了这个不足之处,应该还算是及时吧,在接下来的日子里,我会朝这个方向努力,我相信自己能够把那些不该再存在的缺点抹掉。感谢老师们在这段时间里对我的指导和教诲,我从中受益非浅。
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922