课程设计论文
本组本次课程设计的课题是文本编辑器.本人课程设计内容是编辑时钟,最后实现的功能是显示系统时间,并实现在固定的时间内自动存储文件内容,还有实现显示系统帮助信息.
一,本人的设计思路是:
本段程序的功能是取出时间显示在右下角,所取得是BCD码.需要将十六进制BCD转化成十进制数并输出.最后,所实现的功能是在单位时间内自动调用保存文件子程序,实现自动保存功能.
二、本程序的总体运行过程是:
三、以下是源程序极其解释
datareasegment
hourdb0
mindb0
secdb0
rdndw0
rendw0
flagdw0
datareaends
,************************************
prognamsegment
,------------------------------------------------------------------
mainprocfar
assumecs:prognam,ds:datarea
start:,程序初始化
pushds
movax,0
pushax
movax,datarea
movds,ax
movah,02h
movdh,23d
movdl,60d
movbh,0,置光标位置
int10h
en:
movah,2
int1ah,BIOS中断(读实时钟)
movhour,ch,CH:CL等于hour:min(BCD)
movmin,cl,DH:DL等于sec:1/100sec(BCD)
movsec,dh
movbh,0h,高位清零
movbl,hour,把小时位转换成十进制
callbinidec
movah,02h
movdl,':'
int21h
movbh,0h
movbl,min,把分钟位转换成十进制
callbinidec
movah,02h
movdl,':'
int21h
movbh,0h
movbl,sec,把秒位转换成十进制
callbinidec
movren,10000
dely:,dely与dely1是延迟时间作用
decren
movrdn,1000
dely1:
decrdn
cmprdn,0
jnedely1
cmpren,0
jnedely
movah,02h
movdh,23d,坐标80*25
movdl,60d
movbh,0
int10h
jmpen
ret
mainendp
,-------------------------------------------------------------------------
binidecprocnear,十六进制转十进制
movflag,0
movcx,1000h
calldec_div
movcx,100h
calldec_div
movcx,10h
calldec_div
movflag,1h
movcx,1h
calldec_div
movdl,20h
movah,02h,输出空格
int21h
ret
binidecendp
,--------------------------------------------------------------------------
dec_divprocnear,以下是输出将数据输出
movax,bx
movdx,0
divcx
movbx,dx
cmpal,0
jecmpflag
setflag:
movflag,1
cmpflag:
cmpflag,0
jneprintal
jenotprintal
printal:
movdl,al
adddl,30h,转换成ASCII码值输出
movah,02h,显示输出(DOS功能调用)
int21h
notprintal:
ret,跳出
dec_divendp
,----------------------------------------------------------------------------
prognamends
endstart
以下是显示帮助信息和显示系统时间信息:
文本编辑器——EDIT
6
初始化
开始
输入字符
显示帮助信息
延持时间
置光标位置
显示时间
程序结束
添加文字
输入字符
删除文字
文件插入
打开文件
从系统中取出时间
新建文件
显示菜单1
显示菜单1
显示菜单1
输入字符
开始