《2022年课程设计说明书-汇编语言课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年课程设计说明书-汇编语言课程设计 .pdf(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课 程 设 计 说 明 书汇编语言课程设计院系: 电脑科学与技术专业班级:计科 0904 学号:21 学生:李金龙指导教师:段珊2011 年 10 月 12 日精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 16 页目录课程设计题目信息检索程序设计. 3I 、设计内容 . 3II、2、设计要求 . 4III、 3、算法设计 . 5IV、4、详细设计 . 7V、5、调试与运行. 11VI、6、课程设计心得体会. 13 6.1 设计体会 . 13 6.2 调试过程及分析. 14VII 、 7. 参考文献 . 16精选学习资料 - - - -
2、 - - - - - 名师归纳总结 - - - - - - -第 2 页,共 16 页课程设计题目信息检索程序设计I 、 设计内容课程设计的内容以软硬件综合设计为主,要求同学们在设计过程中,提倡独立思考、深入钻研的精神和严肃认真、一丝不苟、精益求精的工作态度。根据课题的要求,进行深入分析和研究,充分收集和利用现有资源和数据进行设计,保证设计的水平和质量。通过知识的综合运用,加深对汇编语言程序设计的理论与提高综合编程能力的认识,从而建立起汇编程序设计的整体概念。学会汇编程序设计的方法,进一步掌握并体会设计方案的优劣对电脑性能发挥的重要性。培养科学的、独立的工作创新精神,取得课程设计的实践经验精选
3、学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 16 页II 、 2、设计要求完成一个信息检索系统。在数据区,有8 个不同信息,编号 07,每个信息包括 50 个字符。从键盘接收 09 之间的一个编号,然后在屏幕上显示相应编号的信息内容,按“ q”键盘退出。根据要求,问题实现的思路是根据不同的输入序号来计算出相应的物理地址,实现不同信息的输出。对输入项进行判断,满足不同的条件,就会进行相应的计算得出该序号下的信息的物理地址,进而输出出结果。信息显示和其中的单个字符的输出编成子程序使的程序结构更加清晰。精选学习资料 - - - - - - -
4、 - - 名师归纳总结 - - - - - - -第 4 页,共 16 页III、3、算法设计信息表,对信息表的查找是根据键盘接收的编号来确定的。2然后根据编号, (ax)=(al)*50计算相应地址,然后调用 display 显示3. 程 序 中 把 显 示 信 息 编 成 一 个 独 立 的 子 程 序display ,使得程序更加清晰。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 16 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 16 页IV、4、详细设计信息检索程
5、序设计详细设计:;* ; * 名称: 信息检索程序设计 * ;* ;* data segment ;define data segment mess db -,13,10 db | Input a number between 0 and 7|,13,10 db | Press q to quit |,13,10 db -,13,10,$ ;message table forty db 50 ;value for mul instruction msg0 db I am a boy! msg1 db I am very happy! msg2 db Hello everyone! msg3 d
6、b Welocome to our school! msg4 db I love you forever! msg5 db You are my angel! msg6 db It is very nice of you! msg7 db What can I do for you,sir? msg8 db Look!There is a brid on the tree! msg db Please input a number:$ msg9 db The message is: $ crlf1 db 0dh,0ah,$ ;error message errmsg db error! inv
7、alied parameter! data ends ;* stack segment db 256 dup(0) ;256 bytes of stack space tos label word stack ends ;* code segment ;* 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 16 页main proc far ;main part of program assume cs:code,ds:data,ss:stack start: ;starting execution address ;set SS to
8、current stackarea mov ax,stack mov ss,ax mov sp,offset tos ;set up stack for return push ds ;save old data segment sub ax,ax ;put zero in AX push ax ;save it on stack ;set DS to current data segment mov ax,data ;dararea segment addr mov ds,ax ;into DS register ;MAIN PART OF PROGRAM GOES HERE ;begin
9、to process call show begin: lea dx,msg ; 显示提示信息 mov ah,09h int 21h mov ah,1 int 21h cmp al,q ;判断为 q退出 je exit sub al,0 ; 小于0跳转error jb error cmp al,8 ; 大于9跳转error ja error ;select appropriate message from message table mov bx,offset msg0 mul forty ;(ax)=(al)*50 add bx,ax call display jmp begin 精选学习资
10、料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 16 页;define error error: call crlf lea dx,errmsg mov ah,09h int 21h call crlf call crlf jmp begin ;- ;Subroutine to display a message on the screen ;Enter with BX-message to be displayed ;Message is assumeed to be 40 characters long display proc near c
11、all crlf lea dx,msg9 mov ah,09h int 21h mov cx,50 disp1: mov dl,bx mov ah,2 int 21h inc bx loop disp1 call crlf call crlf jmp begin display endp ;- crlf proc near mov dx,offset crlf1 mov ah,9h int 21h ret crlf endp ;- show proc near 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 16 页 lea dx,me
12、ss mov ah,09h int 21h ret show endp ;- exit: mov ax,4c00h int 21h ;- main endp ;* code ends ;* end start 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 16 页V、 5、调试与运行精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 11 页,共 16 页精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 12 页,共 16 页VI、6、课程设计心得
13、体会6.1 设计体会经过近两个星期的工作,才把课程设计完成。经过这次课程设计,我加深了对汇编语言的理解,也对上课时所说的语法有了深刻的认识。相对于以前学习的高级语言,对汇编语言的第一印象是很酷,因为它很抽象。怀着崇拜的心情学着汇编语言,虽然枯燥,但是每当完成一个很简单的程序就会感到非常的有成就感。当我刚开始选择这个题目是因为课本上有一个相近的代码转换,所以感觉这个题目应该很好写。可是等到真正动手的时候就感到了困难。首先是对字符串的输入输出的处理,解决不了就改成了字母大小写转换是每次只输入一个字母,然后根据其大小写转换,如大写就转换成小写,否则反之。然而在随后的进制转换中用遇到了同样的问题,发现
14、这是一个不能不解决的问题,随后查阅了资料才解决。随后实在数值转换过程中对模块的设计上又出现了问题。最初的设想是设计六个模块分别对应相应的数值转换功能。可是在三个写好以后发现了下面要写的代码有很多重复的地方,于是就把这些重复的代码定义成了子函数来使精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 13 页,共 16 页用然后发现将程序按照输入、输出的不同来分模块,以 BX 作为连接,比原来的程序更为简洁,逻辑上也更加清楚,有种豁然开朗的感觉。在改良程序的过程中感到非常有成就感。在编写代码的过程中让我充分感受到了不同编程语言之间的差异。对与高级语言来说或
15、许是很简单的一个程序或者只需要调用已有的函数库,可是对于汇编来说却要写上几十行甚至更多的代码。可是更加深刻的了解了寄存器、存储器之间的数据流向,因为每个考虑不周都会导致一大堆的错误出现,常常令人感到一种无力感,想要放弃。当程序一步步接近完成,看着子函数一个个都运行成功,再组合到一起,那种喜悦是无与伦比,之前所受到的苦楚又是那么的微不足道。更怎强了我对汇编语言的兴趣。6.2 调试过程及分析在进行调试的过程中遇到的问题层出不穷,但大多是因为一些粗心的错误。刚开始遇到最多的问题便是程序在编译时没有任何错误,链接的按钮仍然是灰色的不能够链接,茫然不知所措。上网查找资料却找不到任何相应的情况。于是就不用
16、学校机房里的精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 14 页,共 16 页MASM ,换了另外一款编译器 Masm for Windows 集成实验环境2009.2 ,在进行编译时提示出错“Invalid character in the file” ,在错误信息表中查得是文中使用了无效字符,多数情况下是使用了中文的标点符号。根据这款编译器中代码颜色的不同很快就发现了是在写注释的时候“; ”使用错误了精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 15 页,共 16 页VII 、7. 参考文献1IBM PC 汇编语言程序设计 (第 2 版) 沈美明温冬婵清华大学出版社2IBM PC 汇编语言程序设计例题习题集温冬婵 沈美明 清华大学出版社3IBM PC 汇编语言程序设计实验教程沈美明 温冬婵 清华大学出版社4 汇编语言课程设计案例精编李珍香刘红梅水利水电出版社5 电脑硬件技术孙德文高等教育出版社精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 16 页,共 16 页