单片机BIOSDOS系统功能调用.docx
- 文档编号:9261200
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:12
- 大小:54.31KB
单片机BIOSDOS系统功能调用.docx
《单片机BIOSDOS系统功能调用.docx》由会员分享,可在线阅读,更多相关《单片机BIOSDOS系统功能调用.docx(12页珍藏版)》请在冰点文库上搜索。
单片机BIOSDOS系统功能调用
目录
一、课程设计目的
二、任务介绍及小组成员任务分配
三、设计思想及主要流程图
四、主要程序清单
五、运行结果及分析
六、收获、体会及建议
一、课程设计目的
1. 进一步熟悉BIOS、DOS系统功能调用,了解基本的显存读写技术;
2.了解响铃符以及利用PC扬声器发出不同频率声音的方法;
2. 学会用汇编语言编写一个较完整的实用程序,培养自己的动手操作能力;
3.学习汇编语言程序设计的基本思路和方法,编程、调试、撰写报告等;
二、任务介绍及小组成员任务分配
小组成员
任务分配
祝丹丹
写程序
林哈特
写程序
胡耀斌
写程序
三、设计思想及主要流程图
1、时间的获取
调用系统日期和时间,并将调用的日期和时间数转换成ASCII码存在系统内存区的字符串中。
将存在系统内存区的日期和时间用字符串存入显存区(显存的起始地址:
B800:
0000)并在合适的位置显示出来。
由于获取了的系统时间不会自动刷新,所以我们要设计成刷新的方式(如利用定时器中断,中断类型号为1CH)来不断获取系统的时间,这样就形成了会跳动的电子钟了。
2、屏幕特定位置显示字符
对应屏幕上的每个字符位置,显存空间都有相应的存储单元与之对应。
对应显示在屏幕上的每个字符,在存储器中由连续的两个字节表示,一个字节保存ASCII码,另一个字节保存字符的属性。
属性字节对单色显示和彩色显示都是有效的。
我们可以使用BOIS显示中断10H的各项功能来进行显示字符的编程。
3、主要流程图
主程序流程图中断处理程序流程图
四、主要程序清单
datasegment
countdw1
mess1db'------------------',0dh,0ah,'$'
infodb'Currenttimeis:
',0dh,0ah,'$';提示语
datestrdb'00-00-0000',0dh,0ah,'$';日期显示信息:
month-day-year
timestrdb'00:
00:
00',0dh,0ah,'$';时间提示信息:
hour:
minute:
second
mess2db'------------------',0dh,0ah,'$'
mess3db'Pleaseinput"Q",toquit!
',0dh,0ah,'$';提示语
dataends
codesegment
assumecs:
code,ds:
data
mainprocfar
start:
movax,data
movds,ax
movah,6;ah=06(滚动)al=00(全屏空白)
moval,0
movbh,60h;设置背景颜色和前景颜色
movcx,0
movdx,1950h;右下角行号,列号
int10h
movdh,5
movdl,24
movbh,0
movah,2
int10h
movdx,offsetmess3
movah,09h
int21h
movdh,11
movdl,24
movbh,0
movah,2
int10h
movdx,offsetmess2
movah,09h
int21h
movdh,7
movdl,24
movbh,0
movah,2
int10h
movdx,offsetmess1
movah,09h
int21h
;--------------------
movdh,8;设置到7行30列
movdl,25
movbh,0
movah,2
int10h
movdx,offsetinfo
movah,09h
int21h
;保存原中断向量
moval,1ch
movah,35h
int21h
pushes;获取1ch中断向量到es:
bx
pushbx
pushds;保存
;设置新的中断向量
movdx,offsetintpro
movax,segintpro
movds,ax
moval,1ch
movah,25h
int21h;设置中断向量ds:
dx
popds
inal,21h;读中断屏蔽寄存器
andal,11111110b;开定时器中断
out21h,al;写中断屏蔽寄存器
sti;开中断
;等待中断
s:
movah,0;调用键盘I/O中断功能号0,获取键值到AL
int16h
cmpah,10H
jzquit;是Q键,退出程序
jmps
;恢复1ch原中断向量
quit:
popdx
popds
moval,1ch
movah,25h
int21h
movax,4c00h
int21h
mainendp
;-------------------------------------------------------------------
;中断处理程序intpro
;-------------------------------------------------------------------
intproprocnear
;保护现场
pushds
pushax
pushcx
pushdx
pushbp
pushes
movax,data
movds,ax
sti
deccount
jnzexit
calldispdate;调用函数显示日期和时间
calldisptime
MOVcount,18
;声音
movdl,07
movah,2
int21h
exit:
cli
popbp
popes
popdx
popcx
popax
popds
iret
intproendp
;---------------------------------------------------------------------
;显示日期子程序dispdate
;---------------------------------------------------------------------
dispdateprocnear
pushax
pushcx
pushdx
pushsi
;获取系统日期:
入口:
ah<-2ah,出口:
cx<-year,dh<-month,dl<-day
movah,2ah
int21h
movax,cx;年份转4位ascii码
movbx,10
leasi,datestr+9;指向字符串年份最后一位
movcx,4;年份4位,循环4次
pushdx;保存月日
y:
xordx,dx;dx清零,保存余数即个位
divbx;商存ax,余数存dx
adddl,30h;转ascii码,存datestr字符串末尾
mov[si],dl
decsi
loopy
popdx;还原dx,处理日
moval,dl
xorah,ah
divbl;求日的个位,存ah,十位存al
addax,3030h;分别转ascii码
subsi,2
mov[si],ax;存日
moval,dh;处理月
xorah,ah
divbl;求月的个位,存ah,十位存al
addax,3030h;分别转ascii码
subsi,3
mov[si],ax;存日
;显示日期字符串
MOVAH,2
MOVBH,0
MOVDH,9
MOVDL,25
INT10H
movdx,offsetdatestr
movah,09h
int21h
popsi
popdx
popcx
popax
ret
dispdateendp
;--------------------------------------------------------------------
;显示时间子程序disptime
;---------------------------------------------------------------------
disptimeprocnear
pushax
pushcx
pushdx
pushsi
;获取系统时间:
入口:
ah<-2ch,出口:
ch<-hour,cl<-minute,dh<-second
movah,2ch
int21h
movbl,10
leasi,timestr
moval,ch;处理小时
xorah,ah
divbl
addax,3030h
mov[si],ax
addsi,3
moval,cl;处理分
xorah,ah
divbl
addax,3030h
mov[si],ax
addsi,3
moval,dh;处理秒
xorah,ah
divbl
addax,3030h
mov[si],ax
;显示时间字符串
MOVAH,2
MOVBH,0
MOVDH,10
MOVDL,25
INT10H
movdx,offsettimestr
movah,09h
int21h
popsi
popdx
popcx
popax
ret
disptimeendp
codeends
ENDSTART
五、运行结果及分析
分析:
因为设置了光标位置,所以时间显示在屏幕中间。
六、收获、体会及建议
进一步熟悉了汇编中BIOS、DOS系统功能调用,了解基本的显存读写技术,了解了响铃符以及利用PC扬声器发出不同频率声音的方法。
虽然还没完全掌握,但是大概意思还是能晓得。
我希望下次有机会,做的更好点。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 BIOSDOS 系统 功能 调用