资源描述:
《汇编语言课程设计--时钟的显示与隐藏》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、汇编语言课程设计--时钟的显示与隐藏clear_screenmacroop1,op2,op3,op4;宏定义,设置七个参数movah,06h;ah=06屏幕初始化或上卷指定的行moval,00h;清屏movbh,79h;卷入行属性movch,op1;左上角行号movcl,op2;左上角列号movdh,op3;右上角行号movdl,op4;右上角列号int10h;调用bios功能movah,02h;制定光标位置movbh,00h;第0页movdh,00h;第0行movdl,00h;第0列int10hendmshowmacrob;show命令宏定
2、义leadx,bmovah,9int21hendmstacksegment;定义堆栈段db200dup(0)stackendsdatasegment;定义数据段welcomedb'welcomeyoutohere!','$'ENTERdb0dh,0ah,'$'SPACE1db'','$'RIQIISdb'DATAIS:','$'TIMEISdb'TIMEIS:','$'TISHIXIANSHIdb27dup(''),'/------------------------',0ah,0dhdb27dup(''),'
3、Thetimeisdispl
4、aied
5、',0ah,0dhdb27dup(''),'
6、presswtoyincang
7、',0ah,0dhdb27dup(''),'
8、pressanykeytoexit
9、',0ah,0dhdb27dup(''),'------------------------/',0ah,0dh,'$'TISHIYINCANGdb27dup(''),'/------------------------',0ah,0dhdb27dup(''),'
10、Itisalreadyhidened
11、',0ah,0dhdb27dup(''),'
12、pressqagaint
13、odisplay
14、',0ah,0dhdb27dup(''),'
15、pressanykeytoexit
16、',0ah,0dhdb27dup(''),'------------------------/',0ah,0dh,'$'datedisdb'0000-00-00',0ah,'$';日期格式(更换时间格式可更改97行字符串偏移地址)timedisdb'00',':','00',':','00',0ah,'$';时间格式spacedb22dup(''),'$'dataendscodesegment;定义代码段assumecs:code,ds:da
17、ta,ss:stackstart:;---------------------主程序段-----------------------mainprocfarmovah,00h;Int10,BIOS调用,ah=0时设置显示模式moval,03h;设置80*25彩色图形显示int10hclear_screen00h,00h,19h,50h;调用宏定义,初始化屏幕movax,datamovds,axmovax,stackmovss,ax;程序开始默认显示时间,调用displaycallcalendercalldisplay;之后回归调用S1来判定键盘
18、按键S1:cmpal,71h;与q比较jneL1movah,0chint21h;键盘缓冲区清零,防止死循环callcalendercalldisplayL1:cmpal,77h;与w比较jneL2movah,0chint21hcallcalendercallnodisplayL2:mainendp;-----------------日期时间计算子程序段,将系统时间转换成可以显示的ASCII码并送入字符串---------calenderprocnear;开始计算日期movah,2int10hmovah,2ah;取当前系统日期int21hmov
19、ax,cx;送年份入ax作为被除数(年份存在cx中,DH:DL存储日月)movbx,10;(bx=10)leasi,datedis+14;78使si指向年的最后一位movcx,4;(cx)=4为年的位数,循环4次pushdx;dx入栈,保存月日subsi,10tab:xordx,dx;dx清零divbx;(dx,ax)/bx,商送ax,余数送dxadddl,30h;余数与30h相加变为字符的的ASCII码mov[si],dl;余数送入si所指向的字节区decsi;si减一looptab;循环四次popdx;dx还原,ASCII码转换成功mov
20、al,dl;日送给alxorah,ah;ah清零divbl;ax/bl,商送al,余数送ahaddax,3030h;转变为数字字符的ASCII码addsi,13;使