汇编显示时间日期Word文档格式.docx
- 文档编号:16546525
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:12
- 大小:86.22KB
汇编显示时间日期Word文档格式.docx
《汇编显示时间日期Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编显示时间日期Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
《汇编语言程序设计》,科学出版社,2008年6月出版。
2.设计总结:
题目:
显示系统日期和时间
课题是编译并运行一个显示日期时间的程序,通过汇编软件运行该程序后,在出现的提示信息中输入大写字母“D”,可显示系统当前日期年、月、日;
输入大写字母“T”,可显示系统当前时间时、分、秒;
输入大写字母“Q”,在提示下按任意键可结束程序;
输入其他字母,则没有任何响应。
关键词:
转移指令中断应用循环调用子程序
一、显示日期时间的基本原理
首先设置显示方式为40*25彩色文本方式,而后通过调用INT10H的功能,显示提示信息。
在显示信息提示下输入一个字符,再通过调用INT21H中断的功能,读取键盘的状态扫描键盘输入,根据键盘输入的相关内容,如:
若输入D,则设计程序代码依次读取系统日期年、月、日,并转换成相应的ASCII码字符调用21H中断返回dos状态予以显示;
若在键盘输入T,则设计程序代码依次读取系统时间时、分、秒,并转换成相应的ASCII码字符调用21H中断返回dos状态予以显示;
若输入大写字母Q,则退出当前状态;
若不是相关字符,则不于任何响应,并不显示任何信息。
二、设计方案
1、MAIN程序
通过调用INT10H的功能,显示提示信息。
在显示信息提示下输入一个字符,再通过调用INT21H中断的功能扫描键盘输入,读取键盘的状态,根据输入的字母,与字母“D"进行比较,若比较值不相等则去执行L1,否则响应按键D。
其他如输入“T”和“Q”时同理。
2、DATEDISPLAYPROCNEAR子程序
即日期时间显示程序,以日期显示程序为例,通过读取系统的日期项如“年”,通过调用CALLDATEDISPLAY把日期数值转换成相应的ASCII码字符,再通过调用DATEDISPLAYPROCNEAR日期数值转换成ASCII码字符子程序,然后返回dos界面显示出来,然后再循环以同样方法读取月,日。
3、DATEDISPLAYPROCNEAR子程序
本子程序是显示时间子程序,当键盘输入字母“D”时所调用执行的子程序;
通过调用CALLDATEDISPLAY将时间数值转换成ASCII码字符,因此需调用DATEDISPLAYPROCNEAR时间数值转换成ASCII码字符子程序,然后返回dos完成一个日期项的显示,然后再循环去读取其他时间项;
最后返回主程序执行主程序。
4、TIMEDISPLAYPROCNEAR子程序
即日期时间显示程序,以时间显示程序为例,通过读取系统的时间项,通过调用CALLTIMEDISPLAY把时间数值转换成相应的ASCII码字符,再通过调用TIMEDISPLAYPROCNEAR时间数值转换成ASCII码字符子程序,然后返回dos界面显示出来,然后再循环以同样方法读取月,日。
5、TIMEDISPLAYPROCNEAR子程序
本子程序是显示时间子程序,当键盘输入字母“T”时所调用执行的子程序;
通过调用CALLTIMEDISPLAY将时间数值转换成ASCII码字符,因此需调用TIMEDISPLAYPROCNEAR时间数值转换成ASCII码字符子程序,然后返回dos完成一个时间项的显示,然后再循环去读取其他时间项;
三、软件设计
CLEAR_SCREENMACROOP1,OP2,OP3,OP4
MOVAH,06H
MOVAL,00H
MOVBH,79H
MOVCH,OP1
MOVCH,OP2
MOVCH,OP3
MOVCH,OP4
int10H
MOVAH,02H
MOVBH,00H
MOVDH1,00H
MOVDL,00H
ENDM
STACKSEGMENTSTACK;
定义堆栈段
DB200DUP(0)
STACKENDS
DATASEGMENT;
定义数据段
WELCOMEDB'
WELCOMEYOUTOCOMEHERE!
$'
;
提示界面
INF01DB0DH,0AH,'
THISISADISPLAYPROGAME!
INF02DB0DH,0AH,'
PLEASEINPUT"
D"
"
T"
OR"
Q"
TOSHOWDATATIMEOREXIT!
INF03DB0DH,0AH,'
D:
DISPLAYSYSTEMDATE;
INF04DB0DH,0AH,'
T:
DISPLAYSYSTEMTIME;
INF05DB0DH,0AH,'
Q:
QUIT.$'
INF06DB0DH,0AH,'
PLEASEINPUTTHECHAR:
INPUTERDB0DH,0AH,'
PNPUTERROR!
DATEDISDB'
00-00-0000'
0AH,'
显示DATE
TIMEDISDB'
00:
00'
0DH,0AH,0AH,'
显示TIME
DATAENDS
CODESEGMENT;
代码段定义
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
主程序
MAINPROCFAR
start:
MOVAH,0;
设置40*25图形显示
MOVAL,3
MOVAX,DATA
MOVDS,AX
MOVAX,STACK
MOVSS,AX
;
显示宏定义
SHOWMACROb
LEADX,b
MOVAH,9
int21H
SHOWWELCOME;
显示数据段落的内容
SHOWINF01
SHOWINF02
SHOWINF03
SHOWINF04
SHOWINF05
SHOWINF06
INPUT:
MOVAH,01;
键盘输入回写
CMPAL,44H;
与D比较
JNEL1;
不相等转到L1
CALLDATEDISPLAY;
相等调用DATADISPLAY
JMPEXIT1
L1:
CMPAL,54H;
与T比较
JNEL2;
不相等转L2
CALLTIMEDISPLAY;
相等调用TIMEDISPLAY
L2:
CMPAL,51H;
与Q比较
JEEXIT;
相等转到EXIT
SHOWINPUTER;
显示输入错误
SHOWINF05;
显示输入提示INF05
JMPINPUT
EXIT1:
SHOWINF05;
JMPINPUT
EXIT:
MOVAH,4CH;
结束
MAINENDP
日期显示子程序
DATEDISPLAYPROCNEAR
LEADX,INF03;
将INF03的偏移地址放到DX中,使DX指向INF03
MOVAH,09H;
调用9号功能显示字符串
INT21H
MOVAH,04H;
调用bios(基本输入输出系统)1A中段获取系统日期
INT1AH;
CH=BCD码格式的世纪
CL=BCD码格式的年
DH=BCD码格式的月
DL=BCD码格式的日
CF=0时钟在走,否则,时钟停止
MOVAX,CX;
设置年并覆盖00/00/0000中的0000
MOVCX,4;
需要循环4次,把年的4位中每一位
LEASI,DATEDIS+6;
取出,并覆盖掉DATEDIS中的后四位字符
LA1:
PUSHCX
MOVCL,4
ROLAX,CL
MOVBL,AL
ANDBL,0FH
ORBL,30H
MOV[SI],BL
INCSI
POPCX
LOOPLA1
MOVAX,DX;
设置月日并覆盖00-00-0000中的00-00
LEASI,DATEDIS;
取出,并覆盖掉DATEDIS中的第1.2.4.5位字符
LA2:
CMPCX,3
JNZP2;
跳过00-00中的'
-'
P2:
LOOPLA2
LEADX,DATEDIS;
显示系统当前日期
MOVAH,09H
RET;
调用后返回
DATEDISPLAYENDP
时间显示子程序
TIMEDISPLAYPROCNEAR
LEADX,INF04;
将INF04的偏移地址放到DX中,使DX指向INF04
MOVAH,02H;
调用bios1A中断的二号功能获取系统时间;
时间计数器当前值写入数据区
CH=BCD码格式的小时
CL=BCD码格式的分钟
DH=BCD码格式的秒
DL=00H标准时间,否则,夏令时
设置小时,分钟,并覆盖00:
00中时分
MOVCX,4
LEASI,TIMEDIS
LA3:
CMPCX,3;
跳过00:
00中的'
:
'
JNZP3
P3:
LOOPLA3
PUSHDX;
设置秒,并覆盖00:
00中的最后的秒
SHRDH,CL;
DH右移CL
ORDH,30H
MOVTIMEDIS+6,DH;
将DH传送到DIMEDIS+6
POPDX
ANDDH,0FH
MOVTIMEDIS+7,DH
LEADX,TIMEDIS;
显示时间
时间调用后返回
TIMEDISPLAYENDP
codeends
endstart
四、结论
1、实验结果
运用汇编软件进行编译,程序初始运行界面:
如果输入正确如“D”将出现如下界面(每输入一次就显示一次系统日期):
如果输入正确如“T”将出现如下界面(每输入一次就显示一次系统时间):
如果按错了键,会出现如下界面显示信息:
如果输入“Q”,出现如下画面,按任意键退出界面。
本次课程设计严格按照课程设计任务的要求:
运行可执行程序“汇编期末作业1.exe”,在出现的提示信息中输入大写字母“D”,可显示系统当前日期;
输入大写字母“T”,可显示系统当前时间;
输入大写字母“Q”,可结束程序;
若不是相关字符,则显示从新输入信息。
但还有缺陷的是不能实时刷新时间,由于这点在课程设计任务中没有相关要求,因此这次课程设计可以认为是成功的。
五、教材及参考书
1.在完成课程设计过程中,我认识到平时学习基础知识的重要性,只有能够熟练的掌握才能在课程设计过程中得心应手,否则就会不知从何处入手,因此,扎实的理论知识是课程设计成功的重要保障!
2.通过这次课程设计,我们对各个指令以及语句有了进一步的了解,对各个语句的功能有了更深刻的认识和体会,平时上课的理论知识只是停留在理论概念的层面,而通过了这次的课程设计才真正的体会到,也做到了理论概念和汇编实际的相结合,使理论知识真正运用到了实用中去。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 显示 时间 日期
![提示](https://static.bdocx.com/images/bang_tan.gif)