1、 汇汇汇汇编编编编语语语语言言言言课课课课程程程程设设设设计计计计报报报报告告告告 课程名称: 汇编语言课程设计 设计题目: 显示系统时间 院 系: 计算机科学与技术学院 班 级: 设 计 者: 学 号: 序 号: 指导教师: 设计时间: 2009.06.08-2009.06.19 目录 1. 课程设计题目课程设计题目 2. 课程设计课程设计内容内容 3. 设计目的设计目的 4. 设计图形设计图形 5. 源代码源代码 6. 运行界面运行界面 7. 感想体会感想体会 一,一, 课程设计课程设计目的目的。 1. 掌握中断的使用方法。 2. 掌握 BIOS 系统功能调用。 3. 掌握基本的显存读写技
2、术。 4. 学会用汇编语言编写一个较完整的实用程序, 培养自己的动手操 作能力。 5 . 学习程序设计的基本思路和方法,编程、调试、撰写报告等。 二、程序内容:二、程序内容: 第一部分:定义显示界面。 第二部分:调用系统时间,并将调用的用二进制表示的时间数转换成 ASCII 码,并将时间数存入显存区。(显存的起始地址:B8000H) 第三部分:将存在系统内存区的时间用字符串的形式显示出来。 第四部分:定时响铃功能,指定时间和倒计时。响铃为一首自写音乐。 注意:1、如果用图形方式显示更好, 2、注意设置显示时候的背景颜色 3、可以增加键盘设置的功能,设置显示颜色,显示位置 4、闹铃如果不关闭,可
3、以设置为间隔 1 分钟再响 三、程序设计原理三、程序设计原理 首先在数据段开辟一显示缓冲区,用来存储系统时间。调用 BIOS 中断, 返回系统时间,并将来返回的二进制时间转换成 ASCII 码,方便时间显示时的 调用。分别将来小时数、分钟数、秒数存入显示缓冲区。通过写显存将时间显 示出来。由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式 来不断获取系统的时间,这样就形成了会跳动的电子钟了。定时功能主要指定 一个报警时间作为比较,到了需要响铃时间调用一个音乐程序表示时间到。 四、程序流程图四、程序流程图 图一图一 主程序流程图主程序流程图 图二图二 中断处理程序流程图中断处理程序流程
4、图 开 始 获取原中断类型 1CH 保存原中断类型 设置新的中断类 执行中断处理程 结束 保护现场 中断返回 读取系统时间 保存原中断类型 分别将时间的 BCD 码转换为字 在指定位置写显存以显示时 恢复现场 开始 取系统时间 A 设置闹铃时间 B A=B 开始闹铃 开关是否关 停止闹铃 间隔 1 分钟 输入 1-7 输入# 播放音乐 结束 五、程序代码五、程序代码 eraserScreen macro ab ;清 除过时显示的时间 push ax push cx push bx mov bx ,cloAddre ; 当前地址 sub bx,ab ; 得按键前地址 mov ax,0b800h mov es,ax mov di,bx lea si,blank call disptime pop bx pop cx pop ax endm clearscreen macro clor ;