课程设计文

更新时间:2024-03-19 作者:用户投稿原创标记本站原创 点赞:3471 浏览:13370

课程设计论文

本组本次课程设计的课题是文本编辑器.本人课程设计内容是编辑时钟,最后实现的功能是显示系统时间,并实现在固定的时间内自动存储文件内容,还有实现显示系统帮助信息.

一,本人的设计思路是:

本段程序的功能是取出时间显示在右下角,所取得是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

输入字符

开始

相关论文范文