3986.net
小网站 大容量 大智慧
赞助商链接
当前位置:首页 >> 其它课程 >>

汇编语言程序设计课程设计指导书


汇编语言程序设计课程设计指导书
一.设计目的
本课程设计是“汇编语言程序设计”课程的后续教学环节,其宗旨是 使学生通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功 能等工作,对汇编语言程序设计有进一步的认识,提高编程技巧和阅读理 解复杂程序的能力。

二.设计内容、步骤及要点
typetest.asm 是一个功能相对简单的打字练习程序, 要求学生在理解源 程序的基础上,增添更多的功能模块,使程序更具实用性。

课程设计内容
本课程设计包含两大部分内容:课程设计报告和设计软件。其中设计 软件在题目验收时由指导教师检查,课程设计报告作为书面材料提交。 设计报告的主要内容有:
1、基本任务:

?

? ? ? ? ?
?

认真阅读“typetest.asm”源程序, 理解程序每一条指令在程序中 的作用。绘制程序流程图(简略总图,各模块详细流程图) ,给程 序中的关键语句(后跟分号)作注释。 设置输入界面, 用户输入密码后才能进入主菜单 ; 修改主菜单, 在主菜单上显示当天日期 ; 修改主菜单, 增加可供用户选择难度级别的选项。 为用户打分,正确输入字母使用时间越少,得分越高。 修改程序, 在屏幕右上角显示用户得分、已输入字母数、正确数。 将程序中的“置光标位置”程序段落用宏调用完成, 添加“置光 标位置”宏定义。

2、扩展任务: 设置限定时间,到达该时间,用户尚未得到要求的分数时,游戏停止。 到达限定时间,用户得分达到预设的值时, 自动提高难度等级, 屏幕变色。 修改程序,底行的笑脸字母消失后,不再在该列下落字母(提示:设置数 组记录笑脸字母的存在与否) 。笑脸字母全部消失后, 游戏停止, 显示告别 画面,显示用户成绩。 3、其他任务: 自行设计新的功能。

设计步骤和要点
首先仔细阅读所给的源程序,并在重要处写出注释,在充分理解源程序

后,进行修改和功能模块的添加工作。本设计多处设计 DOS 功能调用及 BIOS 功能调用,在使用这些调用前,要弄清楚入口参数和出口参数。每次 修改程序前要保存旧版本程序,修改处最好有标记,以便调试。注意用堆栈 保护寄存器的内容。

三.课程设计报告的装订等要求
1、装订要求:封面后是任务书、目录、课程设计正文、附录(若有) 。 2、分析原“typetest.asm”程序结构: 画出主程序粗略的流程图和各个模块的 详细流程图,每个功能模块用文字说明他们的功能(与对应流程图放在一 起) ; 3、对你已经实现的功能(修改的、新编写的)做详细的说明, 并附上流程图 及程序清单(修改/增加的指令请使用大写字母,以示区别); 4、自己对该“打字练习程序”的进一步设想; 5、对于有设想但最终未实现的功能的大致编程思路的阐述; 6、论述在设计过程中遇到的并且对你具有启发性的问题。

四.设计工作进度安排
周一:教师布置任务,讲解本课设模块。学生细读原始源程序,在重要行添 加注解。画出主程序粗略的流程图和各个模块的详细流程图。 周二~周三:设计程序、调试程序、同时着手撰写报告。 周四: 完成设计,提交报告,接受教师考评。 (报告提交手写版,程序提交 电子文档) 。

五.设计的考核方法
本次课程设计的考核方法是以个人为单位进行测试检查,每个同学均参 加答辩,并提交个人的设计报告。答辩的内容主要为每个同学叙述系统的功 能及其编程中的问题, 指导教师可能根据学生答辩的具体情况随机提出问题, 每个同学的最后得分以其设计报告质量和完成系统的工作质量为评判标准。

六.设计评分标准
优:完成(或超额完成)任务书规定的全部任务,所承担的课程设计任 务难度较大,工作量饱满;设计方案正确,具有独立工作能力及一定的创造 性,工作态度认真,设计报告内容充实,主题突出,层次分明,图表清晰, 分析透彻,格式规范。 良:完成任务书规定的任务,所承担的课程设计任务具有一定的难度, 工作量较饱满;设计方案正确,具有一定的独立工作能力,对某些问题有见

解,工作态度较认真,设计报告的内容完整,观点明确,层次分明,图表清 晰,但分析不够深入。 中:能完成任务书规定的任务,所承担的课程设计任务难度和工作量一 般;设计方案基本正确,有一些分析问题的能力,工作态度尚认真,设计报 告的内容尚完整,但分析不够深入。 及格:基本能完成任务书规定的任务,所承担的课程设计任务难度较易, 无工作依赖性,工作态度一般,设计报告的内容不太完整,图表无原则性错 误,条理欠清晰,格式较规范。 不及格:没有完成任务书规定的设计任务,所承担的课程设计任务难度 未达到要求,工作量不足;工作态度不认真,设计报告的内容不太完整,条 理不清晰。

七.其他说明
1. 参加课程设计的学生应端正学习态度,独立完成设计任务,严禁抄袭、 剽窃他人成果或找人代做等行为,一经发现,其成绩按不及格计。 2. 指导教师每天考勤,学生不得迟到、早退或旷课,因事或因病不能参加 设计,应按照学院相关请假手续事先请假或事后补假。

八.附录 《打字练习程序》汇编语言源程序清单
; ; ; Assembly program for test your type skills Writed by in 06/24/2003 Modified by Mi shuang in 06/06/2005

; -----------------------------------------------Init_boarder macro row, col, char, dhdl, count; Local ll mov cx, count mov dh, row mov dl, col ll: mov ah, 02h mov bh, 00h int 10h push cx mov ah, 0ah mov al, char mov bh, 00h mov cx, 01h int 10h pop cx inc dhdl loop ll endm ; --------------------------------------------------clear_screen macro top, left, bottom, right; 清屏宏定义 mov ah, 06h mov al, 00h mov bh, 07h mov ch, top mov cl, left mov dh, bottom mov dl, right int 10h mov ah, 02h mov bh, 00h mov dh, 00h mov dl, 00h int 10h endm ; ---------------------------------------------------menu macro row, col, text; 菜单显示宏定义 mov ah, 02h mov bh, 00h mov dh, row mov dl, col int 10h mov ah, 09h

lea int

dx, text 21h

endm ; ====================================================== Data segment ZK db "WELCOME TO PLAY$" date db "Date:2003/6/24$" mes0 db "Press Enter key to continue.......$" mes1 db "When a letter is dropping,please hit it!$" mes2 db "Press space key to pause!$" mes3 db "Press ESC key to return main interface!$" mes4 db "Press letter 'E' to exit!$" Speed dw 3000H Letters db "jwmilzoeucgpravskntxhdyqfb" db "iytpkwnxlsvxrmofzhgaebudjq" db "nwimzoexrphysfqtvdcgljukda" Present_position db 1 db 0 ; Data ends ; ========================================================= code segment main proc far assume cs: code, ds: data start: mov ax, data mov ds, ax mov es, ax mov mov int cx, 1000h ah, 01h 10h

; 00d, 00d, 24d, 00d, 00d, 00d, 00d, 00d, 00d, 79d, 24d, 0ah, 0ah, 0ah, 0ah, 79d dl, dl, dh, dh, ; 80d 80d 25d 25d ;

clear_screen Init_boarder Init_boarder Init_boarder Init_boarder menu menu menu menu menu menu menu mov mov mov 05d, 07h, 09d, 11d, 13d, 15d, 17d, ah, 02h bh, 00h dh, 22d

15d, 15d, 15d, 18d, 18d, 18d, 15d,

ZK date mes0 mes1 mes2 mes3 mes4

; 显示菜单

; 设置光标位置

mov int keyin: mov int cmp je cmp je jmp mov int

dl, 33d 10h ah, 07h 21h al, 0dh begin al, ‘E’ exit keyin ax, 4c00h 21h 01d, 01d, 23d, 78d ; 清屏 23d, 01d, 01h, dl, 78d ; ; 从键盘输入命令字符 ; ; ; ; ;

exit:

begin:

clear_screen Init_boarder mov mov mov mov int ah, bh, dh, dl, 10h 02h 00h 01h 01h

;

mov lea nextletter: mov mov int inc loop start_game: mov int inc cmp jna sub sg1: mov lea add dec mov mov mov mov int

cx, 78 si, letters ah, 02h dl, [si] 21h si nextletter ; 显示字母

ah, 2ch 21h ; dl ; dl, 78 sg1 dl, 78 present_position, dl di, letters di, word ptr present_position ; di ; dl, present_position ; ah, 02h bh, 00h dh, 01h 10h ;

mov nextrow: push mov wait_for_key: push mov delay: loop push mov mov int pop jz cmp je cmp jne pause:

cx, 21d cx cx, speed

; ; ; 延迟

cx cx,1000

delay dx ah, 06h dl, 0ffh 21h dx pass

; 从键盘输入字符

al, 1bh to_start al, " " pass0 push dx mov ah, 06h mov dl, 0ffh int 21h pop dx cmp al, " " jne pause jmp pass start al,[di] disappear cx

; 如果键入 ESC,则返回主菜单 ; 如果键入 SPACE,则游戏暂停 ; 暂停处理

; ;

to_start: jmp pass0: cmp je pop LOOP

; 输入字母正确!则字母消失

pass:

; wait_for_key ;

down: mov mov mov mov int inc mov mov ah, al, bh, cx, 10h 0ah " " 00h 01h ; 在当前光标位置写空格

; ; ; 改变光标位置

dh ah, 02h bh, 00h

int mov mov mov mov int pop loop letter_over: mov mov mov mov int inc mov mov int mov mov mov mov int jmp disappear: pop pop mov mov mov mov int next_letter: mov mov mov mov int mov add

10h ah, al, bh, cx, 10h cx nextrow ; 下一行 ; ah, al, bh, cx, 10h 0ah " " 00h 01h ; ; 0ah [di] 00h 01h ; 在当前光标位置写字母

;

dh ah, 02h bh, 00h 10h ah, al, bh, cx, 10h 0ah " " 00h 01h

;

;

next_letter ; 击中字母后输出空格 cx cx ah, al, bh, cx, 10h

0ah " " 00h 01h

; ;

;

ah, bh, dh, dl, 10h

02h ; 00h ; 01h present_position ;

;

al, [di] al, 7

; 出现下一个新字母的算法 ;

cmp jna sub next_letter1: mov mov mov int mov jmp main code endp ends end

al, 7ah next_letter1 al, 26 ah, 0ah bh, 00h cx, 01h 10h [di], al start_game

;

start



推荐相关:

【3】微机原理与汇编语言程序设计课程设计实验指导书_图文

【3】微机原理与汇编语言程序设计课程设计实验指导书_工学_高等教育_教育专区。微机原理汇编语言实验 《微机原理与汇编语言程序设计课程设计》 实验指导书本课程设计...


汇编语言课程设计任务书

2 汇编语言课程设计指导书 一、混合编程预备知识(一)什么是混合编程 多种程序设计语言间,通过相互调用、参数传递、共享数据结构和数据信 息而形成程序的过程就是...


Z计算机111班《汇编语言设计》 课程设计 指导书

Z 计算机 111)班《汇编语言程序设计课程设计指导书一、课程设计的目的本课程设计是在学完教学大纲规定的全部内容、 完成所有实践环节的基础上, 旨在深化 学生学习...


汇编课程设计报告

汇编语言程序设计课程设计 课程设计任务书学生姓名: 指导教师: 专业班级: 工作单位:计算机科学与技术学院 题目: 打印水仙花数 初始条件:理论:完成了《汇编语言...


微机原理课程设计指导书2015

《微机原理及应用》课程设计指导书 软件按照学号末尾选做 东华大学信息科学与技术...二、课程设计内容一)汇编语言程序设计及调试 0) PC 机实时时钟的设计 利用 PC...


微机原理课程设计指导书(2014)

二) 微机系统硬件实验(另附指导书) 三、课程设计要求要求每位同学独立完成课完成一个汇编语言程序设计和调试, 完成硬件实验。 汇编语 言程序必须实现基本功能,在...


课程设计说明书 汇编语言课程设计

课程设计说明书汇编语言课程设计 院学 系: 计算机科学与技术 计科 0904 21 李...指导教师: 2011 年 10 月 12 日 目录课程设计题目 信息检索程序设计 ......


微机原理课程设计指导书

微机原理课程设计指导书微机原理课程设计指导书隐藏>> 软件实验部分 目 录 软件实验部分 1 汇编语言程序设计 ...2 实验 1.1 汇编语言程序的调试与运行......


电气本科单片机原理课程设计指导书

电气本科单片机原理课程设计指导书_工学_高等教育_教育专区。河北科技师范学院欧美...(3)系统初始化的汇编语言原程序的设计:功能齐全、语句简练、注释明确。 四、...


微型计算机技术-课程设计指导书-学校

微型计算机技术-课程设计指导书-学校_工学_高等教育_教育专区。微型计算机技术-...给出程序流程框图,对软件设计技巧、难点进行说明; 4.用 8086 汇编语言编程,给...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com