《微机原理及接口》
课程设计报告
课题名称 | 打字测试练习 |
学院 | 自动控制与机械工程学院 |
专业 | 通信技术 |
班级 | |
姓名 | |
学号 | |
时间 | 2012年1月13日 |
任务书
第一章 设计概述
1.1 设计课题
1.2 设计任务
1.3 设计目的
1.4 设备环境
第二章 设计的相关知识
2.1 汇编语言的程序设计
2.2 BIOS中断介绍
2.3 DOS中断介绍
2.4 子程序设计
第三章 设计方案
3.1 设计思想分析
3.2 设计方案实现
3.3 程序流程图
3.4 源程序
第四章 调试及运行结果
第五章 课程设计心得体会
5.1 心得体会及系统改进
5.2 课程设计遇到的问题和解决方案
参考文献
附录
微机原理课程设计任务书
一 课题题目:
打字测试练习
二 课题要求:
在DOS环境中设计一个打字测试练习的程序:
具体要求:
1.屏幕上显示出提示信息和练习例句;
2.按照例句在从键盘上输入字母;
3.每输入完一行后回车,显示练习输入的时间、输入的正确数和错误数和下一行例句;
4.按Esc键可退出程序。
5.参考设计基本思路编程实现上述功能;
6.设计说明书:包括设计思想、程序流程图和源程序。
三 设计基本思路
见课程设计指导书
四 时间进度表:
序号 | 内容安排 | 时间(天) | 备注 |
1 | 分析设计,收集资料准备阶段 | 2 | |
2 | 编程测试阶段 | 5 | 上机 |
3 | 编写课程设计论文(说明书)阶段 | 2 | 上机 |
4 | 考核评定成绩阶段 | 1 | |
合计 | 10 | ||
五 考核方式
序号 | 考核内容 | 时间(分) | 备注 |
1 | 将所设计的源程序、复制到指定目录中,并汇编、连接 | 2 | 上机 |
2 | 运行程序,验证设计结果 | 1 | 上机 |
3 | 答辩 | 5 | 上机 |
六 补充说明
1.设计题目必须调试成功(生成的可执行文件必须能运行并且能够实现题目实现的功能),考核是独立完成考核内容,若未完成没有成绩。
2.设计说明书必须独立完成,若果出现70%相同视为雷同,取消其成绩。
七 主要参考资料
1.《微机原理与接口技术》 李兰友编 清华大学出版社 2009
2.《微机原理与应用》 潘名莲编 电子科技大学出版社 1995
3.《新编深入DOS编程》 求伯君主编 学苑出版社 1994
第一章 设计概述
1.1 设计课题
打字测试练习
1.2 设计任务
在DOS环境中编程完成以下任务:
(1) 屏幕上显示出提示信息和练习例句;
(2) 按照例句在从键盘上输入字母;
(3) 每输入完一行后回车完成字符串是什么,显示练习输入的时间、输入的正确数和错误数和下一行例句;
(4) 按Esc键可退出程序。
(5) 参考设计基本思路编程实现上述功能;
(6) 设计说明书:包括设计思想、程序流程图和源程序。
1.3 设计目的
学习汇编语言综合应用程序设计方法,提高汇编语言实际应用能力,充分了解计算机硬件和软件,利用PC机键盘和时间中断字符显示实现打字练习程序,完成理论到实践的推进过程。
培养学生理论联系实际的设计思想,提高学生综合应用汇编语言课程的理论知识去分析问题、解决问题的能力。
1.4 设备环境
IBM-PC微型计算机1台
第二章 设计的相关知识
2.1 汇编语言的程序设计
1.程序设计的基本步骤
(1) 分析实际问题,弄清已知条件、未知条件和求解对象;
(2) 分析得到需要解决的数据组织;
(3) 确定算法;
(4) 根据算法,绘制程序流程框图;
(5) 按照程序流程框图编写程序代码;
(6) 调试运行程序;
(7) 重复(1)-(5)步,直到基本无问题。
2.三种顺序结构
(1) 顺序程序设计
顺序是最常见的,也是最基本的程序设计方法。这种程序在计算机内存中执行时,按照先后顺序,逐句顺序执行。他没有分支也没有循环,因此也称为线性程序。
(2) 分支程序设计
在程序中,除了最基本的顺序结构以外,通常还有各种分支,以满足不同情况做不同处理的需要。分支结构有两种形式:一种是引出两个分支的;另一种是引出多个分支的。前者类似于高级语言中的IF—THEN—ELSE语句,后者类似于高级语言中的CASE语句。程序在某种条件下运行时,执行其中一个分支。
(3) 循环程序设计
循环程序也是一种基本结构。程序中,往往有的程序段需要重复执行多次,以实现某种功能,这样,可以大大简化程序设计。循环程序通常有以下三部分组成:
a.循环初始状态 循环过程中的工作单元,在循环开始前,往往要给他们赋初值,以保证循环能正常的进行工作。
b.循环体 这是循环程序重复执行的部分,是循环的主体。
c.循环控制 循环能正常进行和结束,循环控制是关键。循环控制条件不合理,循环就无法按正常的预定进行,甚至导致死循环。
2.2 BIOS中断介绍
1.什么是BIOS
BIOS的全称是ROM—BIOS—ROM Basic I/O System(只读存储器基本输入输出系统)。它是一组固化到微机主板上一个ROM芯片上的子程序,主要功能包括:
a.驱动系统中所配置的常用外设(即驱动程序),如显示器、键盘、打印机、磁盘驱动器、通信接口等。
b.开机自检,引导装入。
c.提供时间、内存容量及设备配置情况等参数。
使用BIOS中断调用与DOS系统功能调用类似,用户也无需了解相关设备的结构与组成细节,直接调用即可。
2.调用方法
A.键盘I/O中断调用(INT 16H)
键盘I/O中断调用有三个功能,功能号0,1,2,且必须把功能号放在AH中。
a. 0号功能调用
格式:MOV AH,0
INT 16H
功能:从键盘读入字符送AL寄存器。执行时,等待键盘输入,一旦输入,字符的ASCII码放入AL中。若AL=0,则AH为输入的扩展码。
b. 1号功能调用
格式:MOV AH,01H
INT 16H
功能:用来查询键盘缓冲区,对键盘扫描但不等待,并设置ZF标志。若有按键操作(即键盘缓冲区不空),则ZF=0,AL中存放的是输入的ASCII码,AH中存放输入字符的扩展码。若无键按下,则标志位ZF=1。
c. 2号功能调用
格式:MOV AH,02H
INT 16H
功能:检查键盘上各特殊功能键的状态。执行后,各种特殊功能键的状态放入AL寄存器器中。
3. BIOS屏幕功能调用。INT 10H
a.清屏作用
MOV AX,0600H
MOV CX,0000H
MOV DX,184FH
MOV BH,07H
INT 10H
b.移动光标
MOV AH,02H
MOV DH,** ;**为目的地行数(0—24)
MOV DL,** ;**为目的地列数(0—79)
MOV BH,00H
INT 10H
C.禁止光标显示
MOV AH,01H
MOV CX,2000H
INT 10H
d.恢复光标显示
MOV AH,01H
MOV CX,0C0DH
INT 10H
2.3 DOS中断介绍
1.什么是DOS系统功能调用
系统功能调用是DOS为用户提供的常用子程序(80多个),可在汇编语言程序中直接调用这些子程序的。
使用DOS提供的程序控制硬件。优点是兼容性好,使用方便。
DOS是IBM PC系列微机的操作系统(现在的微机仍能运行DOS,而且新的操作系统也能继续提供几乎所有的DOS功能调用)负责管理系统的所有资源,协调微机的操作,其中包括大量可供用户调用的服务程序。DOS的功能调用不依赖于具体的硬件系统。所有的DOS系统功能调用都是利用软件中断指令INT 21H来实现的。也就是说,在程序中需要调用DOS功能的时候,只要使用一条INT 21H指令即可。INT 21H是一个具有90多个子功能的中断服务程序,这些子功能大致可以分为四类:设备管理、目录管理、文件管理和其他。其功能一览表可参见附录。为了方便用户使用这些子功能,INT 21H对每一个子功能都进行了编号—称为
功能号。这样,用户就能通过指定功能号来调用INT 21H的不同子功能。
2.DOS功能调用方法
a.在AH寄存器中存入所要调用功能的功能号;
b.根据所调用功能的规定设置入口参数;
c.用INT 21H指令转入子程序入口;
d.相应的子程序运行完后,可以按规定取得出口参数。
3.DOS的基本输入/输出功能调用
A.键盘输入
调用格式:MOV AH,1
INT 21H
功能:等待从键盘输入一个字符并送入AL。
a.1号调用——从键盘输入单个字符
b.10号调用——从键盘输入字符串
功能:从键盘接收字符串送入内存的输入缓冲区,同时送显示器显示。
调用前要求:先定义一个缓冲区
调用格式:LEA DX,MAXLEN(缓冲区首偏移地址)
MOV AH,10
INT 21H
注意:调用时,要求DS:DX指向输入缓冲区
B.显示输出
a.2号调用——在显示器上显示输出单个字符
调用格式:MOV DL,待显示字符的ASCII码
MOV AH,2
INT 21H
b.9号调用——在显示器上显示输出字符串
调用格式:LEA DX,字符串首偏移地址
MOV AH,9
INT 21H
功能:将当前数据区中DS:DX所指向的以‘$’结尾的字符串送显示器显示。
2.4 子程序设计
1.子程序的结构
子程序一般以文件形式编写,并常以过程形式存放在代码段中。子程序文件通常由程序说明和子程序主体组成。子程序说明通常包括子程序功能描述(名称,性能,执行时间等),所
有寄存器名和存储单元、子程序入口和出口参数及是否又调用其他子程序。子程序的结构一般包括保存现场、依入口参数从指定位置取加工信息、加工处理、依出口参数指定位置送出处理结果、恢复现场和返回调用程序等部分。
子程序的结构形式:
子程序名 PROC
RET
子程序名 ENDS
2.子程序的调用和返回
主程序调用子程序使用CALL指令。根据CALL指令获得目标地址的方法,有4种调用方式:段内直接调用方式、段内间接调用方式、段间直接调用方式和段间间接调用方式。为了能正确返回,不管哪一种调用方式,都需要把断点(即CALL指令的下一条指令的地址)入栈保护。同时,CALL指令的类型必须与RET指令类型相匹配。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论