汇编语言打字练习程序课程设计报告
汇编程序课程设计报告
汇编语言课程设计报告( 2014 -- 2015 年度第 1 学期)课题名称:打字计时练习程序专业 计算机科学与技术(网络工程)学生姓名 金玲班级 B 计算机131学号 1310704114指导教师 许秋艳完成日期2015年1月16日目录1 设计目的 (1)2 概要设计 (1)2.1系统总体分析 (1)2.2主模块框图及说明 (1)3 详细设计 (1)3.1主模块及子模块说明 (1)3.2各模块详细设计 ............................................................................... 错误!未定义书签。
3.2.1 主界面模块.................................................................................... 错误!未定义书签。
3.2.2 随机字母产生模块........................................................................ 错误!未定义书签。
3.2.3 字母落下模块................................................................................ 错误!未定义书签。
3.2.4 暂停模块........................................................................................ 错误!未定义书签。
3.2.5 返回主界面模块............................................................................ 错误!未定义书签。
4 程序调试 (2)4.1运行界面分析 (2)4.2调试过程及分析 (3)5 心得体会 (3)5.1设计体会 (3)5.2系统改进 ........................................................................................... 错误!未定义书签。
VB课程设计报告-打字练习
VISUAL BASIC课程设计报告题目:打字练习姓名:***学号:班级:1题目介绍在计算机及其它数码产品日益普及的今天,人们使用键盘应像使用笔写字一样熟练。
进行打字练习是熟悉键盘并提高打字速度的豪放法。
本题目要求编制一个打字练习游戏,是用户在游戏过程中练习指法。
2设计过程中用到的知识点(1)控件数组(2)键盘事件处理(3)文本文件的读写(4)多模块程序设计(5)随机值的生成3课题要求和承担的任务(1)游戏开始时出现“打字设置”窗口,在“您的姓名”文本框中输入用户名。
若未输入名字,就点击“开始练习”与“查看成绩”按钮,则提示用户输入姓名。
若未输入时间,就点击“开始练习”与“查看成绩”按钮,则提示用户输入时间。
在“打字设置”窗口可以设置打字速度和难度,速度决定字母下落的快慢,共分高,中,低速三档。
难度等级也分为三档:小写字母,大写字母,所有混合(字母,数字和符号)(2)选择速度和难度之后,单击“开始练习”按钮后,主页面以全屏方式显示。
根据难度的设置,屏幕上随即产生并落下各种字符。
若用户在字符落到屏幕底部之前敲击了相应的键盘键,则该字符被“击中”后消失,击中时在字符位置上显示一个爆炸的效果。
程序根据速度和难度的不同自动进行计分,分数实时地显示在主界面的顶部。
计分标准为:1,慢速+小写字母:打中一个1分2,慢速+大写字母:打中一个2分3,慢速+混合字符:打中一个3分4,中速+小写字母:打中一个4分5,中速+大写字母:打中一个5分6,中速+混合字符:打中一个6分7,高速+小写字母:打中一个7分8,高速+大写字母:打中一个8分9,高速+混合字符:打中一个9分(3)打字前可以选择打字的时间,时间一到弹出消息框显示用户本次练习得分,并提示是否继续练习,如果选“否”,返回“打字设置”窗口。
用户的成绩被保存在“SCORE.TXT”文件中,供以后查询。
(4)当下落字符中有相同字符时,一次只能打掉一个(5)在打字过程中,可以按ESC键中止游戏,返回打字设置窗口。
打字练习课程设计分析
打字练习课程设计单位电气与电子工程分院(系)专业电气与电子工程学号学生姓名指导教师完成日期年月日一个好的打字员也必须经过指法练习的磨练才能成才,同样,一个好的指法练习系统对一个打字员也是必不可少的工具。
以下是用C语言编写的指法练习系统软件的设计报告。
一.系统功能本程序完成简单的指法练习全程,实现测试打字过程中返回正确错误个数的功能,并显示用户测试成绩。
部分功能通过类似window界面实现,完全符合课程设计的要求。
二.系统总框图及函数定义及说明系统总框图:三.设计分析程序主要以函数为模块,一个函数实现一个功能或一个设置项,为了阅读的方便,函数里又包含了自定义函数,最后主函数调用自定义的函数,整个过程清晰,各个函数独立性强。
算法方面主要是产生随机字符这块要研究一下,其他的大概也没什么好研究的,基本都是输入输出操作。
随机字符的产生我利用了数组的下标和random()函数,数组先给赋值了,三个数组就三种情况,达到了设计的要求。
还有就是倒计时的实现,因为C语言不能同时执行两条语句,故在打字的过程中和倒计时不能同时实现,为了解决这个问题,我用了kbhit()如果键盘没输入就退出这次输入循环,让倒计时继续执行,当有键盘的输入这次的输入循环也就结束,也是让倒计时继续执行,问题解决。
四.程序存在的问题由于本人水平有限,本程序存在一些问题,主要有以下几个方面:1.在打字过程中,当打错了字时不能删掉重新输入,只能继续打下去,因为这个过程用的是循环输入,当每入一字就结束了这个字的输入不能修改。
2.部分界面的输入没考虑用户各种输入的情况,当用户非正常输入时,系统可能会中止。
3.没有考虑当用户选择背景字体颜色都一样时的情况(这种情况导致界面没有东西显示,主要就是背景和字体用了一样的颜色),只是用提示语句提醒用户。
五.心得体会经过两周的课程设计,对C语言有了更深刻的了解,学到了很多以前没了解过的函数和算法。
一直以来就认为C语言就是学编程的基础但用不上场,现在觉得它的确也能用上场了,可以编写软件。
汇编语言打字练习程序实验报告
课程设计说明书题目: 打字练习院系:专业班级:学号:学生姓名:指导教师:2010年 12 月 31 日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年12月17 日安徽理工大学课程设计(论文)成绩评定表摘要在IBM-PC系统中,驻留的ROM中有8KB的BIOS。
它实现对系统中种种常用设备的输入输出操作的管理。
其中的16H中断调用即为键盘输入输出中断调用,实现从键盘输入字符到AL寄存器、读键盘缓冲区字符到AL寄存器、读取特殊功能键的状态等功能。
本程序通过汇编语言实现,运行时有不同的字母从界面的上方落下,用户通过识别字母敲击键盘上的按键,字母就消失了,接着落下下一个字母。
在实现这个功能的过程中,如何使用宏调用、如何将菜单显示在界面上、如何将字母放到寄存器在界面上方显示、如何控制字母下落的速度以及如何退出程序,都将在本文中体现。
关键词:中断调用,汇编语言,宏调用,寄存器,显示,退出目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3 详细设计 (3)3.1 主模块及子模块说明 (3)3.2 各模块详细设计 (4)4.程序调试 (11)4.1 运行界面分析 (11)4.2算法的分析 (13)4.3 调试过程及分析 (13)5心得体会 (14)5.1 设计体会 (14)5.2 系统改进 (14)参考文献 (15)1设计目的汇编语言是一门面向机器的语言,它是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
由于汇编语言如此的接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。
使用汇编语言完成课程设计,能进一步学习汇编语言这门技术,提高编程思想和编程技术。
本程序时使用汇编语言,设计一个练习打字的程序。
运行程序时,显示菜单界面。
按下Enter键后界面上方出现由26个字母组成的乱序行。
这时有字母随即下落。
这时候在键盘上敲击该字母,如果字母正确,则这个字母消失,下一个字母开始下落;如果字母不正确,则该字母落下后继续产生下一个字母。
打字练习课程设计
1.引言汇编语言程序设计是电子信息类专业的重要基础课程,是计算机应用开发人员必须接受的最重要的专业基础训练之一,是计算机软,硬件研究的基础,是一个优秀计算机工作者必须掌握的基础知识和基本技能。
汇编语言也是计算机能够提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
因而,对程序的空间个时间的要求很高的场合,汇编语言的应用时必不可少的。
2.设计任务与要求1、随机显示一段字符(可含有字母和数字)2、根据屏幕显示进行打字练习,出错时声响报警3、打字完成后统计正确率和打字时间4、程序采用汇编语言在PC机上完成5、完成符合学校要求的设计说明书3.设计方案(1)本次课程设计通过对8253 的设置,使之产生一定频率的波形,将该波形输出到中断口IRQ。
每次进入中断都刷新LED点阵上的字母显示,从而控制打字练习的速度。
通过改变8253的计数初值可以改变速度。
(2)8253 通道1 工作于方式3,输入1MHZ 的时钟,设置分频系数为1000,输出1KHZ 的方波,此输出作为通道0 的输入时钟。
通道0 工作于方式3,分频系数为用户输入的速度等级×1000。
[注:速度等级:1---快速 2---中速 3----慢速](3)将8255 的A 口接到LED 点阵的COL1-8,C 口接到LED 点阵的ROW1-8,每当进入中断,就把在数据段存好的字母的段码送到A 口和C 口,显示相应的字母。
(4) 每个字母都需要分段循环显示,利用人眼的视觉暂留便可看见点阵上显示整个字母。
(5)为避免中断服务程序过长,在写中断服务程序时,只需要把中断标志置1即可,其余操作可在主程序中进行。
(6)在字母显示期间,要不断读取按键输入,直到按键正确或进入下一次中断(即表示该字母的出现时间已经结束),准备出现下一个字母。
(7)在字母显示期间,若读入的按键是错误的,则在屏幕上显示“错误”,并继续显示该字母,等待按键或中断;若未能在字母消失前按下正确的键,则在屏幕上显示“超时”,并显示下一个字母;若在字母消失前按下正确的键,则在屏幕上显示“正确”,往A 口和C 口输出00H,使字母消失,分数加1,并准备显示下一个字母。
c打字游戏课程设计报告
c打字游戏课程设计报告一、课程目标知识目标:1. 学生能够掌握C语言基础语法,包括变量声明、数据类型、运算符等。
2. 学生能够理解并运用循环结构、条件语句编写简单的打字游戏程序。
3. 学生了解基本的计算机编码知识,如ASCII码。
技能目标:1. 学生能够运用C语言编写简单的打字游戏程序,提高编程实践能力。
2. 学生能够通过编写代码解决问题,培养逻辑思维和问题解决能力。
3. 学生能够熟练使用计算机键盘,提高打字速度和准确性。
情感态度价值观目标:1. 学生培养对编程的兴趣,激发学习C语言的热情。
2. 学生在团队协作中,培养沟通、协作能力,增强团队意识。
3. 学生通过编程实践,体会计算机科学的魅力,树立正确的科技观。
课程性质:本课程为实践性较强的编程课程,结合打字游戏的形式,让学生在轻松愉快的氛围中学习C语言编程。
学生特点:五年级学生,具备一定的计算机操作能力,对游戏有浓厚兴趣,具备初步的逻辑思维能力。
教学要求:教师应注重引导学生主动探究、实践,关注学生的个体差异,鼓励学生发挥创意,提高编程能力和团队协作能力。
通过本课程的学习,使学生达到上述具体的学习成果。
二、教学内容1. C语言基础语法:- 变量声明、数据类型(整型、字符型)- 常量和变量- 运算符(算术、关系、逻辑)- 语法结构(顺序、选择、循环)2. 编程实践:- 打字游戏程序设计思路- 设计简单循环结构,实现打字游戏基本框架- 引入随机函数,生成随机字母或单词- 使用条件语句,判断用户输入与随机字母的匹配3. 计算机编码知识:- ASCII码介绍- 键盘布局与打字技巧4. 教学内容的安排和进度:- 第一课时:C语言基础语法回顾,介绍打字游戏目标- 第二课时:设计打字游戏基本框架,学习循环结构- 第三课时:引入随机函数,学习条件语句- 第四课时:完善打字游戏功能,进行编程实践- 第五课时:总结与展示,讨论编程过程中的问题及解决方法教材关联:- 《C语言趣味编程》第三章:循环结构- 《C语言趣味编程》第四章:分支结构- 《计算机科学》第二单元:计算机编码知识教学内容注重科学性和系统性,结合教材相关章节,引导学生通过实践掌握C 语言编程知识,提高编程技能。
汇编语言打字练习程序课程设计报告
课程设计说明书题目: 打字练习院系:专业班级:学号:学生姓名:指导教师:2010 年 12 月 31 日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室ﻩ2010年12月17日安徽理工大学课程设计(论文)成绩评定表摘要汇编语言是计算机能够给用户使用的最高效快捷的语言,也是唯一能对计算机所有硬件进行操纵的语言。
鉴于汇编语言的用途广泛以及重要性,我花费的大量的时间完成此次课程时机,打字练习。
打字练习是计算机常用的小应用程序,可以给想练习打字的人提供一个好的练习空间。
本文的核心部分是对于详细设计的讲解与分析,而这当中的侧重点又在于设计思想的再现。
关键词:功能模块,核心代码,随机字符,模块调用,功能分析目录1设计目的ﻩ错误!未定义书签。
2概要设计 .......................................................................... 错误!未定义书签。
2.1系统总体分析 ...................................................................................................... 错误!未定义书签。
2.2主模块框图及说明ﻩ错误!未定义书签。
3 详细设计 ......................................................................... 错误!未定义书签。
3.1主模块及子模块说明 ........................................................................................ 错误!未定义书签。
3.2各模块详细设计ﻩ错误!未定义书签。
3.2.1主界面模块.................................................................................................. 错误!未定义书签。
微机原理课程设计练习打字程序
微机原理课程设计报告题目:练习打字程序学生姓名:傅湘黔学号: 2专业班级:计科专业10102班同组姓名: 刘再科指导教师:杨红杰设计时间: 2013年下学期第17周指导老师意见:评定成绩:签名:日期:年月日目录1课程设计内容与目的 (3)2相关理论知识 (3)2.1扬声器驱动 (3)2.2 相关指令 (3)3程序段设计 (5)3.1字符串的输入设计 (5)3.2错字变红色的设计 (5)3.3报警部分设计 (6)4硬件设计 (7)4.1并行接口8255A (7)4.2硬件连接图 (9)5程序流程图 (10)6程序调试效果 (11)7心得体会 (11)8参考文献 (11)附录 (12)1课程设计内容与目的课程设计内容:设计一个在键盘上练习打字的程序。
先在屏幕上显示一段文字,用户按照它在键盘上输入,如果按错键则以红色显示并报警,正确的输入,则正常显示。
课程设计目的:熟悉和掌握有关键盘ASCⅡ码,中断及字符显示技术。
课程设计要求:自行编制报警中断和显示错字红色中断处理程序,为保存原中断向量。
程序运行时,通过条件调用自编的中断向量处理程序。
程序退出时,恢复中断向量。
屏幕上显示出提示信息和练习的字符段,按照字符段从键盘上输入字符即可,每输入完一行后能自动刷新练习的字符段按Esc键可退出程序。
2相关理论知识2.1扬声器驱动PC机上的大多数I/O都是由主板上的8255(或8255A)可编程外围接口芯片(PPI)管理,用PPI输出寄存器中的PB0和PB1来控制扬声器的驱动,而8253的通道2的输出端与扬声器相连,PB0连接通道2的CKL2,PB1和通道2的OUT2通过一与非门连接扬声器,在PB0与PB1都为高电平时,由8253产生的脉冲就进入扬声器产生声音。
2.2 相关指令1)无条件转移指令无条件转移指令必须指定转移的目标地址(或称为转向地址),将程序无条件地转移到目标地址,去执行从该地址开始的指令。
如“JMP 目标地址”2)条件转移指令条件指令是根据执行该指令前标志位的状态而决定是否发生的控制转移指令。
汇编语言课程设计打字游戏
目录1. 课程设计目的及内容 (2)1.1 课程设计目的 (2)1.2 课程设计内容 (2)2. 开发环境 (2)2.1 软、硬件环境 (2)2.2 MASM开发环境 (3)3.功能分析 (3)3.1 基本功能设计 (3)3.2系统程序流程图 (4)4. 调试和运行程序 (5)4.1 程序调试 (5)4.2 程序运行 (6)5. 课程设计总结 (8)6. 参考文献 (8)附录 (9)源程序代码 (9)打字游戏1. 课程设计目的及内容1.1 课程设计目的汇编语言是一项实用性很强的技术,学完教学大纲规定的全部内容,完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言课程设计方法,提高分析问题,解决问题的综合应用能力。
学会查阅和汇编语言相关的规范,手册等技术资料。
能正确绘制和使用流程图。
掌握汇编语言程序设计和程序调试的基本技能,能进行基本的软件设计。
1.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是汇编编译器,是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发的优点,支持伪指令和宏汇编,最后编译生成obj文件,通过link工具连接成可执行文件exe。
汇编课程设计打字游戏
;程序中要用到的一些宏指令及其说明
getChar MACRO char;调用1号功能,接收一个字符,将字符放在char里
PUSHAX
MOVAH,1
INT 21H
MOVchar,AL
POPAX
ENDM
showChar MACRO char;调用2号功能显示字符
PUSHAX
PUSHDX
INT 10H
POPAX
ENDM
initWindow MACRO A,B,C1,C2,D1,D2;初始化窗口或窗口内容向上卷动,也可以用于清屏
PUSHAX
PUSHBX
PUSHCX
PUSHDX
MOVAH,6
MOVAL,A;上卷行数
MOVBH,B;卷入行属性(颜色)
MOVCH,C1;左上角行号
MOVCL,C2;左上角列号
DB'Start',0dh,0ah,'$'
DB'Setting',0dh,0ah,'$'
DB'Quit',0dh,0ah,'$'
KickDB?
XDB?
YDB?
ErrorMsgDB'Error!',0dh,0ah,'$'
EXITMsgDB' You really want to exit,enter Y to exit,and N to continue! (Y/N)',0dh,0ah,'$'
在具体实现的过程中遇到了很多困难。由于自己的电脑是64位的不兼容,所以平时对编好的程序在windows环境下用记事本打开程序对其进行说明注释,由于使用了中文,所以回到dos环境时出现了乱码。本次课程设计让我们充分了解了汇编在实际软件开发中的作用和地位。在这次课程设计过程中我们把课堂上的知识充分运用了还是不能完成实际软件开发。这说明程序开发是不能够停留在书本上的,想要把程序作好,必须要不断通过各种途径掌握更多更好的知识,并且最重要的是要将获得的知识运用到实际编程中,要学以致用。本次课程设计是自由分组、自由选题。我们可以根据我们的兴趣和优势来选择题目。通过这次编写打字游戏程序的课程设计,最基本的收获是我了解了汇编语言编写程序的步骤:先确定程序要实现的功能,接着定义需要的寄存器、存储器,画出流程图。然后逐个模块实现其功能。此次的课程设计,提高了我阅读和分析程序的能力,以及模仿能力。编程能力实事求是地说还有待提高,觉得自己逻辑性太差,但相对于原来学的高级语言,对汇编很感兴趣,最终虽然不会从事汇编的编程工作,但知识就是力量,学习汇编拓展了自己的知识面。
汇编语言 打字练习 课程设计报告(内附源程序)
课程设计2010 ~ 2011学年第二学期设计题目打字练习程序院(系)计算机科学与信息工程专业计算机科学与技术班级 091041b1 学号 0910411113学生姓名王涛设计时间2011年 6 月 20 日——2011 年 6 月 24日指导教师蒯锐提交日期 2011年6月24日上海应用技术学院课程设计任务书指导教师(签名):蒯锐教研室主任(签名):杨晶鑫 2011年 6 月 20 日 2011年 6 月 20 日目录2011学年第二学期 (1)2010~1.概述 (5)1.1基本功能 (5)1.2扩展功能 (6)2.详细设计说明 (7)2.1分析原“typetest.asm”程序结构 (8)2.1已经实现的功能(修改的、新编写的)说明 (9)3. 对该“打字练习程序”的进一步设想 (10)3.1 (11)3.2 (12)3.3 (12)4. 课程设计总结 (13)5. 软件使用说明 (13)6.附录(参考文献,原代码) (14)6.1参考文献 (14)6.2 源代码 (15)1概述本课程设计是《80X86汇编语言程序设计》课程的后继教学环节, 通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作, 使学生对汇编语言程序设计有更进一步的认识, 提高阅读理解复杂程序的能力和程序设计能力基本功能1.1基本功能(1)设置输入界面, 用户输入密码后才能进入主菜单(2)修改主菜单, 在主菜单上显示当天日期。
(3)修改主菜单, 增加可供用户选择难度级别的选项。
(4)为用户打分,正确输入字母使用时间越少,得分越高。
(5)修改程序, 在屏幕右上角显示用户得分、已输入字母数、正确数。
(6)将程序中的“置光标位置”程序段落用宏调用完成, 添加“置光标位置”宏定义。
1.2拓展功能1. 设置限定时间,到达该时间,用户尚未得到要求的分数时,游戏停止。
2. 到达限定时间,用户得分达到预设的值时, 自动提高难度等级, 屏幕变色。
打字练习计时程序设计说明书
学号:课程设计题目打字练习计时程序设计学院专业班级姓名指导教师2014 年月日课程设计任务书学生姓名:专业班级:指导教师:工作单位:题目: 打字计时练习程序设计要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.用汇编语言编写一个打字计时练习的程序,在缓冲区中预放一些字母,运行时,可按照屏幕上显示的字母输入练习。
2.按某个键开始练习,每输入完一行按回车键后,可显示出练习的时间及正确率。
3.撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:12月30日-----12月31日查阅资料及方案设计1月2日-----1月3日编程1月6日调试程序1月7日-----1月8日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1.设计要求 (2)1.1设计任务 (2)1.2设计要求 (2)1.3设计目的 (2)2.算法设计 (3)2.1设计思路 (3)2.2程序流程图 (3)3设计说明 (5)3.1BIOS中断 (5)3.1.1显示输出管理 (5)3.2DOS中断 (6)3.2.1DOS中断 (6)3.2.2 DOS中断和BIOS中断使用方法 (6)4.程序说明 (8)4.1计算正确率子程序 (8)4.2键盘获取子程序 (9)5.调试与运行 (11)5.1运行程序: (11)5.2调试中出现的问题 (12)6.总结 (13)参考文献 (14)附录 (15)摘要计算机的不断更新发展,在各个领域的应用越来越多。
而汇编语言是计算机能够提供用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显得必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可。
微机课设报告 打字游戏汇编语言的设计
学号09750223实习报告微型计算机原理及应用课程设计报告打字游戏程序设计起止日期:2012 年1 月3 日至2012年 1 月6 日学生姓名马聪班级09电气2班成绩指导教师(签字)电子与信息工程系2012年1月05日摘要为了更好地掌握学习微机原理的知识,我们进行了这次课程实验,以完善我们的知识体系,我们通过汇编语言在PC机上完成了一个打字游戏的设计,它具有练习打字的功能。
本有游戏主要针对指法练习,并提供字母和单词两种选择。
根据用户自身情况,可以进行速度调节,以达到最佳的练习效果。
同时本游戏提供显示得分,正确率和失败个数的功能。
当失败个数超过一定个数后,游戏结束并提示是否继续。
目录一、课程设计题目 (2)二、设计思路模块划分流程图 (2)㈠设计思路 (2)㈡模块划分 (2)㈢流程图 (3)三、程序源代码 (4)四、调试过程,运行结果和出现的问题及解决 (12)1、调试结果 (12)2、在调试中碰到问题 (14)五、课程设计心得 (14)六、成绩单 (15)一、课程设计题目、内容和实现的功能字母打字游戏基本功能:0 菜单主界面由“开始”“速度调整”“暂停”“结束”“统计得分”等项组成1 按ESC键退出游戏,显示得分,正确打字数和错误打字数.二、设计思路、模块划分、流程图(一)设计思路:利用计算机控制发声的原理,来演奏乐曲的程序。
乐曲按一定的高低、长短和强弱关系组成的音调。
根据歌谱,来编写歌程序的音符表和节奏表。
组成乐谱的每个音符的频率值和持续时间是乐曲程序发声所需要的两个数据。
通过来设时间值,然后通过发声程序“*”来播放音乐。
通过键盘控制扬声器发出各种音符声音,使计算机键盘变成钢琴键盘,这是可以用它来演奏各种简单的声音。
弹奏时对应乐谱上的q音符,按下1,程序将接收到的1键的频率为262Hz送入程序中。
1、音乐播放选择从键盘上输入“1”,则播放“新年好”;从键盘上输入“q”,则退出;从键盘上输入其它字符,则等待重新输入。
汇编语言专题实验报告
汇编语言专题实验报告设计题目:键盘打字游戏姓名:班级:计算机85学号:20080551262010 年11 月28 日一、对课程设计的认识制作这款打字小游戏是为了对汇编语言程序设计有一个更深刻的了解,将所学的知识应用于实践,提高自己的编程水平。
鉴于用汇编语言编程的复杂性,为了使游戏能够实现自己预先的构想,所以自创了这款相对比较简单的打字游戏。
在游戏制作工作中会应用到80x86的指令系统和寻址方式,输入输出程序设计等,涉及到的知识领域还是很全面的,所以在通过完成这次编程,相信能得到不小的提高。
二、功能需求描述经过多次尝试和验证,本程序大体能实现一下功能:1、出现菜单主界面,按回车键出现由26个字母组成的乱序行,这时其中任一个字母落下;2、在键盘上敲入该字母,如果输入正确,字母消失;3、按ESC键返回主界面;4、按空格键暂停;5、按‘E’退出。
三、程序方案设计程序首先通过宏的定义以及调用宏来画出游戏边框,再通过定义一个函数并调用MOV AH,09 INT 21H 来显示字符串, DS:DX定义字符串位置。
游戏主程序调用BIOS INT 10 的9号功能实现对目标文本的颜色和定位。
游戏主程序可以用MOV AH,00 INT 16H从键盘读取输入的字符再调用MOV AH,01 INT 21H 让键盘输入显示在屏幕中 AL=输入的字符,用CMP指令对输入的文本和目标文本进行比较,再利用选择语句在打错字符后对wrong的基数加1,在打对字符后对right的基数加1,并调用清屏函数clear将该字符消除。
对于要求柱形图实时显示正确和错误的数目,可以通过利用“*”在竖向上叠加来实现,字符串结束后直接退到dos环境。
整体设计方案流程图四、程序详细设计1、程序流程详细说明首先运行程序,进入主界面,通过键盘输入字符,先判断是否是“E”,是则直接退出,如果不是“E”,则进入下一步判断是否为数字1,是就按速度1 下落字母,否就进入下一步判断,是否为数字2,是就按速度2下落字母,否就进入下一步判断,是否为数字3,是就按速度3下落字母,否就返回重新输入。
最新汇编语言打字练习程序课程设计报告
课程设计说明书题目: 打字练习院系:专业班级:学号:学生姓名:指导教师:2010 年 12 月 31 日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年12月17 日安徽理工大学课程设计(论文)成绩评定表摘要汇编语言是计算机能够给用户使用的最高效快捷的语言,也是唯一能对计算机所有硬件进行操纵的语言。
鉴于汇编语言的用途广泛以及重要性,我花费的大量的时间完成此次课程时机,打字练习。
打字练习是计算机常用的小应用程序,可以给想练习打字的人提供一个好的练习空间。
本文的核心部分是对于详细设计的讲解与分析,而这当中的侧重点又在于设计思想的再现。
关键词:功能模块,核心代码,随机字符,模块调用,功能分析目录1设计目的 (1)2概要设计 (2)2.1系统总体分析 (2)2.2主模块框图及说明 (2)3 详细设计 (4)3.1主模块及子模块说明 (4)3.2各模块详细设计 (4)3.2.1主界面模块 (4)3.2.2随机字母产生模块 (6)3.2.3字母落下模块 (7)3.2.4暂停模块 (8)3.2.5返回主界面模块 (9)4.程序调试 (9)4.1运行界面分析 (10)4.2调试过程及分析 (11)5心得体会 (12)5.1设计体会 (12)5.2系统改进 (12)参考文献 (13)1设计目的这次课设的任务是写一个程序,运行可执行程序后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。
通过课程设计,主要达到以下目的:1. 增进对汇编语言的认识,加强用汇编语言编程的能力;2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等;3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础;4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中;5. 掌握屏幕输出显示的设计方法。
汇编语言程序设计打字练习程序
汇编语言课程设计报告( 2014 -- 2015 年度第 1 学期)专业 xxx 学生姓名 xxxx 班级 xxx 学号xxxx 指导教师 xxx 完成日期xxxxx目录1.设计目的与设计要求2.程序流程图 (5)2.1主程序流程图 (5)2.2时间计算流程图 (6)2.3正确率计算流程图 (7)3.设计关键问题 (9)3.1输入输出 (9)3.1.1 输出显示信息 (9)3.1.2 输入十个字符 (11)3.2 输入字符串所用时间计算 (11)3.3 正确率判断 (13)4.调试运行结果分析 (14)参考文献 (19)附录二打字计时练习程序 (19)一.设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题,解决问题的综合应用能力。
设计要求在缓冲区预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。
设计思路1.系统总体分析在缓存区预放了一些字母,运行时可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间。
当一个句子分析完后(回车键作为结束符),屏幕上以min:sec:msec的格式显示出键入字符的时间。
在每次打字之前,屏幕上先显示一个例句,然后打字员按照例句,将句中字符通过键盘输入。
这个过程共进行五次,当键入一个enter键时,推出打字计时练习程序。
在键盘上联系的打字例句及其他地址表,计时单位等预存在DATA数据段中。
自编的中断程序Kbint检测按键时产生的中断,并将按键扫描码转换为ASCII码存入缓存区BUFFER(内存中一个区域),这个工作和EOM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符(如英文小写字母,数字及一些字符),其他特殊键(如组合键,双态键,功能键),都未做解释,只做字符码0来处理。
汇编语言课程设计打字计时练习【范本模板】
学生课程设计(论文)题目:打字计时练习学生姓名:学号:所在院(系):计算机学院专业:信息与计算科学班级: 06级2班指导教师:职称:2008年12 月26 日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书注:任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表摘要在IBM—PC系统中,驻留的ROM中有8KB的BIOS。
它实现对系统中种种常用设备的输入输出操作的管理。
其中的16H中断调用即为键盘输入输出中断调用,实现从键盘输入字符到AL寄存器、读键盘缓冲区字符到AL寄存器、读取特殊功能键的状态等功能。
本程序是一个在键盘上练习打字并能统计时间的程序,在缓冲区中预放了一些字母,运行时,可按照屏幕上显示的字母输入练习,每输入完一行按回车键后,可显示出练习输入的时间.通过它练习英文打字练习,并能够统计时间。
程序运行时,使用自编的中断向量处理程序.程序退出时,恢复中断向量。
关键词打字计时,寄存器,缓冲区,中断向量1、课程设计题目描述和要求1.1 问题提出及功能要求设计一个在键盘上练习打字并能统计时间的程序。
通过它练习英文打字练习,并能够统计时间。
屏幕上显示出提示信息和练习例句,按照例句从键盘上输入字母即可,每输入完一行后按回车键,可显示出练习输入的时间和下一行例句.按Esc 键可退出程序.1。
2 运行环境Windows XP/98/2000操作系统、文本编辑器使用EDIT或NOTEPAD,汇编程序使用MASM。
EXE,连接程序使用LINK.EXE,调试程序使用DEBUG。
EXE。
1。
3 本课题涉及的知识点定义数据段,设置主要参数:设置9号中断向量地址,9号中断向量首址,1C 向量地址;定义时间参数为秒、分、小时。
在代码段,调用中断8259、键盘中断、时钟中断、并设置打字计时文件程序顺序。
整个程序使用序分化各子功能.2、算法设计2。
1设计思路在键盘上练习的打字例句及其地址表、计时单元等预先放在DATA数据段中,自编的中断程序kbint检测按键时产生的中断,并把按键的扫描码转换为ASCII 码存入缓存区buffer,这个工作和ROM09类型的键盘中断例行程序所完成的工作大致相同,只是在解释各个键时作了简化,即只解释了可显示字符,如英文字母、数字及一些符号;其他特殊键,如组合键、双态键、功能键等都未作解释,只作为字符码0来处理.在主程序部分保存原09类型的中断向量,设置自编例行程序的中断向量,设置中断屏蔽位,然后开中断。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计说明书题目: 打字练习院系:专业班级:学号:学生姓名:指导教师:2010 年 12 月 31 日安徽理工大学课程设计(论文)任务书计算机科学与工程学院硬件教研室2010年 12月 17 日安徽理工大学课程设计(论文)成绩评定表摘要这项课程设计是用汇编语言完成打字练习,本文主要分为五部分,设计目的,概要设计,详细设计,程序调试以及心得体会。
从构思,编写,调试到完整的实现,每一部分都做了深入的分析和说明。
通过平时所学知识的综合利用,完成以及完善了这个小程序。
本文的核心部分是对于详细设计的讲解与分析,而这当中的侧重点又在于设计思想的再现。
判断,循环,子程序,宏都是此次课程设计的重要组成不分。
关键词:功能模块,核心代码,随机字符,模块调用,功能分析目录1设计目的 (1)2概要设计 (2)2.1系统总体分析 (2)2.2主模块框图及说明 (2)3 详细设计 (4)3.1主模块及子模块说明 (4)3.2各模块详细设计 (4)3.2.1主界面模块 (4)3.2.2随机字母产生模块 (6)3.2.3字母落下模块 (7)3.2.4暂停模块 (8)3.2.5返回主界面模块 (9)4.程序调试 (10)4.1运行界面分析 (10)4.2调试过程及分析 (11)5心得体会 (12)5.1设计体会 (12)5.2系统改进 (12)参考文献 (13)1设计目的这次课设的任务是写一个程序,运行可执行程序后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。
通过课程设计,主要达到以下目的:1. 增进对汇编语言的认识,加强用汇编语言编程的能力;2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等;3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础;4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中;5. 掌握屏幕输出显示的设计方法。
2概要设计2.1 系统总体分析根据题目要求可以看到有以下几部分来实现打字练习:1.由26字母乱序组成一行显示行。
2.字母自动落下。
3.从键盘输入的字母与落下字母相同则该字母消失,并且下一个字母自动接着落下。
4.按下“Ese”键则程序返回到主界面。
5.按空格键游戏暂停。
6.在主界面按“E”则程序退出。
打字练习的主要功能由以上六部分组成,每一部分之间的联系都是比较紧密的。
对于以上及部分,最主要的部分就是第二三两个部分,这是打字练习的重点,需要详细设计其所需要的功能。
2.2主模块框图及说明程序的核心模块是打字,各个模块功能的实现主要是通过键盘输入指令来融合的,主要流程是先到主界面,然后选择你想要进行的指令ENTER进入打字界面开始打字,E退出程序,空格在打字练习时执行暂停的功能,ESC是从打字界面返回到主界面。
核心模块的流程大体如下面的流程图图2-1:图2-1程序设计流程图3 详细设计3.1 主模块及子模块说明主界面是程序的初始入口,也是其他功能模块的接入点。
主模块是打字模块,也是核心模块,主要通过各个键盘符来控制各个子模块之间的协调。
子模块分为判断输入字符判断模块(这当中包含两个小的子模块:主界面输入字符判断和打字模块输入字符判断)、暂停模块、退出模块(这当中包含两个小的子模块:打字界面返回主界面模块和主界面退出程序模块)3.2 各模块详细设计3.2.1主界面模块当程序运行后,我们首先要进行选择,是要继续进行即进入打字练习程序还是终止练习退出程序。
所以,在这里我们需要设置一个程序,该程序要判断键盘键入的字符,我们不妨规定ESC键和ENTER键分别为终止程序的控制键和进入打字练习程序的控制键,即当检验到键盘输入ESC后,退出程序;当键盘输入为ENTER时进入打字练习程序。
单元程序如下:menu db '*********************************',0dh,0ahdb 'Welcome to word type exercise',0dh,0ahdb 'press Enter key to continue.......',0dh,0ahdb 'when a letter is dropping,please hit it!',0dh,0ahdb 'press space key to pause!',0dh,0ahdb 'press ESC key to return main interface!',0dh,0ahdb 'press letter E to exit!',0dh,0ahdb '*********************************$'以上设置主界面的显示方式。
clear_screen 00d,00d,24d,79dInit_write 00d,00d,0ah,dl,80d,nextsign1Init_write 24d,00d,0ah,dl,80d,nextsign2Init_write 00d,00d,0ah,dh,25d,nextsign3Init_write 00d,79d,0ah,dh,25d,nextsign4menu 05d,15d,ZK ;菜单信息的宏调用menu 07h,15d,nomenu 09d,15d,megmenu 11d,15d,meg1menu 13d,15d,meg2menu 15d,15d,meg3menu 17d,15d,meg4put: mov ah,02h ;设置光标位置mov bh,00hmov dh,22dmov dl,33dint 10hmov ah,01h ;从键盘输入任意字符int 21hcmp al,0dhje speed3cmp al,45hje exit以上代码是清屏,并调用宏实现主界面的显示,并在主界面中设置了菜单显示后的光标位置,以方便使用者的操作。
in_cycle:add cx,01hcmp cx,1000jne in_cyclepush dxmov ah,06h ;从键盘输入字符mov dl,0ffhint 21hpop dxjz passcmp al,1bh ;如果键入ESC,则返回主菜单je to_start1cmp al," " ;如果键入SPACE,则游戏暂停je pausecmp al,[di] ;输入字母正确!则字母消失je disappearto_start1: ;返回主菜单jmp start上述程序段中用到了中断INT21,利用中断的有关规定,先将01H存入到AH当中,则AL中即为由键盘键入的字符。
在此,先通过CMP指令来判断输入的字符是否是ENTER键(ENTER键的ASCII码为十六进制的0DH,程序开头部分的宏定义已经令CR 为0DH),如果是的话,程序将跳转到程序disappear,disappear是定义的又一个程序,该程序即为打字练习程序的核心部分。
如果不是ENTER的话,将执行下一条指令,即判断键盘键入的是否为E键,此功能由CMP AL,1BH来实现,其中1BH是E键的ACSII 码的十六进制的表示。
如果是E键的话,程序将跳转到TZD_1子程序,再通过TZD_1程序来判断是否要退出打字练习程序。
如果键盘键入的既不是ENTER也不是E键的话,程序将继续等待键盘的输入,直到输入的按键为ENTER和E当中的一个为止。
3.2.2随机字母产生模块当用户选择继续运行程序且进入打字练习界面时,则程序需要首先为用户输出一列随机的字符序列,这时程序就需要自动的调用产生随机字符序列的程序。
程序段如下:letters db "jwmilzoeucgpravskntxhdyqfb"db "iytpkwnxlsvxrmofzhgaebudjq"db "nwimzoexrphysfqtvdcgljukda"letters_bak db "jwmilzoeucgpravskntxhdyqfb"db "iytpkwnxlsvxrmofzhgaebudjq"db "nwimzoexrphysfqtvdcgljukda"letter_counter db 0begin: clear_screen 01d,01d,23d,78d ;清屏宏调用clear_screen 01d,01d,23d,78dInit_write 23d,01d,01h,dl,78d,nextsign5mov ah,02hmov bh,00hmov dh,01hmov dl,01hint 10hmov cx,00hlea si,letters上述的程序段中,begin实现了输出的字符的随机显示,当然这个随机是我们要事先通过自己随机定义一段由26个字母随机组成的序列,然后由begin来调用,从而间接来实现随即字母的产生。
Begin段利用了INT10,其功能是设置屏幕显示方式,灵活的利用INT10丰富的指令功能,可以巧妙的设计出想要的程序来。
INT10中断规定,DH和DL共同控制着字符输出的位置,其中DH为字符输出的行标,DL为字符输出的列标,通过改变DH和DL的值,可以改变字符在命令符输出屏幕上的位置;如果AH=09H时,则AL=字符,BL则是控制着输出的字符属性或颜色;计数器CX中存放的则是重复输出字符的个数。
本程序中令CX中存放78,也就是说loop循环程序将循环78次,程序的输出为78个字符,当loop循环程序运行结束之后,程序将执行下一条指令,调用DAZIRUKOU子程序。
使得程序继续运行,让用户按照程序自动产生的字符串来进行打字练习。
3.2.3字母落下模块程序自动进入打字功能,自动落下字符,等待键盘输入字符以此来判断输入者想什么,如果键盘输入与预期的相符合则程序自动执行相关功能。
如果输入字符与落下字符相同,程序执行当前字母消失和产生下一落下字母的功能,字母落下功能的实现是通过逐行替换的方法实现的,字母在当前行出现会有一个延迟时间,当过了这个延迟时间时,程序执行当前位置清空操作,并在下一行显示上一行的字母。
代码如下:hit: mov ah,02hmov bh,00hmov dh,01hmov dl,present_positionint 10hmov al,[di] ; 出现下一个新字母的数法add al,7cmp al,7ahja convey_lettermov ah,0ahmov bh,00hmov cx,01hint 10hmov [di],aladd letter_counter,01hjmp nextcycleconvey_letter:sub al,7ahadd al,61hmov ah,0ahmov bh,00hmov cx,01hint 10hmov [di],aladd letter_counter,01hjmp nextcycleclear_screen 01,01,23,78mov ah,02hmov bh,00hmov dh,11dmov dl,20dint 10hinc dhinc dhmov ah,02hmov bh,00hint 10hdisappear: ;击中字母后输出空格pop cxpop cxmov ah,0ahmov al," "mov bh,00hmov cx,01hint 10hjmp hit3.2.4暂停模块如果输入空格,则程序执行暂停功能,暂停功能的实现是通过以下方法实现的,当从键盘输入空格时,程序收到暂停信号,执行跳转,跳转到一个死循环模块,就是无限显示当前屏幕,不做其他任何操作,直到键盘再次输入空格时,程序收到暂停结束指令,跳转回到主程序模块,继续执行主模块的功能。