1、4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 1/19百度首页登录 意见反馈下载客户端g3581g4EA5 g4374g41DF g3FF6g4EC1 gD2Eg2877 g2E15g4683 g1BB7g14C3 g4364gA57 g47F7g435D gD60gD2E | g8D0g795VIP百度文库教育专区高等教育工学首页 分类 精品内容 申请认证 机构合作 频道专区 百度智慧课堂 百度教育VIP g2277g3546g422Eg303Bg41EEg41D1g18D5gA7Ag3gFCg1C6Eg2F6Ag332Bg350Fg1C26g4C24
2、gABCg1C15g1D4Fg3一 题目:显示系统时间和日期 二 设计目的 1. 将cmd界面清屏,变成黑底 2. 从cosra里获得系统时间,并在cmd界面中间显示系统时间和日期,左下角显示姓名学号 3. 获取系统年份判断是否闰年,并在屏幕左下角显示 4. 月第几季度 三 功能设计 1. 首先确定在cmosra里边讯处系统时间日期的地址70h,以及存储系统时间的地址71h以及分别所占单元长度 2. 将整个屏幕除了最后一行全部用黑底覆盖,便于显示时间以及人信息。 3. 把系统年份调出,放在bx里进行运算,判断是否闰年,并在屏幕左下方显示 4. 把系统月份调出放在bx里进行比较,判断是哪个季度,
3、并在屏幕左下方显示 四 算法设计 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 2/191. 读取日期和时间这部分代码首先获取秒的地址,分别取出高八位低八位然后把对应的BCD加上30h变成对应的ASCI码,便于显示。读取完秒之后地址依次累加,循环读取出日期以及时和分 2. 因为一共有六个信息,所以每个信息读取完之后继续循环读取下。 3. 清屏的时候直接用黑底对整个cmd界面进行逐字的黑底覆盖,从而使时间可以显示在屏幕的中央。 4. 读取到系统年份后,除4看是否能整除,因为系统年份前两位都是20所以把两位读取出来之后判定是否能被4整除,能被整除,就是闰年
4、5. 读取到系统月份之后判断是否对应1到2这12个数字,对应13就跳转到输出第一季度,以此类推,输出系统时间对的季度 五 运行结果: 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 3/19 代码实现: asumecs:ode,s:dat,s:tack datsegmnt db 9h,8,7h,4,2h,0/: tdb 6dup(0),$ s1db lvhaoyn41253,$ Pdb0h,a,Thisifirstquarte!,$ Qdb0h,a,Thisisecondquarte!,$ Mdb0h,a,Thisithirdquarte!,$4/14/2
5、019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 4/19 Ndb0h,a,Thisifourthquarte!,$ Ydb0h,a,Thisialepyear!,$ Sdb0h,a,Thisinotalepyear!,$datends stacksegmnt dw 128dup(0) ;定义栈段字形 stackends codesgment star: movax,dta ovds,ax movax,stckvs,x movsp,128 leadx,s1 movah,9 int21h califleapyr4/14/2019 汇编课程设计报告 显示系统时间和日期 -
6、百度文库https:/ 5/19s: calquarte b: calClearScen ;清屏 Show: poax bx podx movcx,6 calxianshi pushbxxunha: pushcx calShowTimeAndDate popcx lopxunha4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 6/19 movax,4c0h int21h ;=xianshi: movax,dta ovds,axmvx,0b8h;0b8h是文本模式下dos显存起始地址 moves,ax vsi,0 movdi,160*2+30*2 ;显示器地
7、址 ret;=ShowTimeAndDate: ;在cmosra中存放当前时间年,月日时,分秒这六个信息长度都为1字节 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 7/19 ;存放单元为:秒:0H,分:02H,时:04H,日:07H,月:08H,年:09H,以BCD码的方式存放 moval,ds:i out70h,al ;将al的值写入70h端口 ;向地址端口70h(地址端口存放要访问的单元地址)写入要访问的单元 movah,l inal,71h ;读取71h的以字节数据到al ;从数据端口71h(数据端口,存放数据)中取得指定单元中的 ;leabx,
8、t ;movbx,al movdl,al ovdh,al moval,h ovcl,4 ;逻辑右移4位 shrdh,cl ; 4 andh,01b ;高四位清空,留4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 8/19下低四位 anddl,00001111b adddh,30h ;BCD码治+30h=十进制对应的ascii码 adddl,30h moves:di,h oves:di+2,dl movdh,s:i+6 ves:i+4,dh incbx incsi adddi,6 ret;=ClearScen: movax,0b8h oves,ax movd
9、i,0 ovcx,16504/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 9/19 ClearBgin: movwordptres:di,07h ; adddi,2 loopClearBegin ret;=ifleapyrpocnear movcx,1 pushbx calout1 calpd jca1 leadx,s movah,9 int21h4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 10/19 jmpexit a1: leadx,y movah,9 int21h exit: jmpsifleapyrendp
10、;=out1procnear out70h,al movah,l inal,71h movbl,al; ret out1endp ;=4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 11/19pd procnearmvcl,04h ovch,10D movax,bshral,cl andal,0 mulchandbl,0 addal,bl mov dx,0 ov bx,4h div bx cmp dx,0 jnz lab1 jmp lab2 lab1:clc jmplab3 lab2:stc lab3: ret4/14/2019 汇编课程设计报告 显示系统
11、时间和日期 - 百度文库https:/ 12/19 pdenp ;=quarte procnear poax pobx podx movcx,1 pushbx jmpout2 ;jmpdq 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 13/19;= out2: moval,8; out70h,al inal,71h ;adal,30h movbl,al ;= pdq: cmpbx,1h jeone cmpbx,2hjeone cmpbx,3h jeone cmpbx,4h jetwo cmpbx,5h4/14/2019 汇编课程设计报告 显示系统时间和
12、日期 - 百度文库https:/ 14/19 jetwo cmpbx,6h jetwo cmpbx,7h jethre cmpbx,8h jethre cmpbx,9h jethre cmpbx,10D jefour cmpbx,1D jefour cmpbx,12D jefour ;= One: leadx,p4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 15/19 movah,9 int21h mov ah,2 ov dl,0h int 21h mov dl,0ah int 21h jmpexit9 ;= two: leadx,q movah,9 i
13、nt21h mov ah,2 ov dl,0h4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 16/19 int 21hmov dl,0ah int 21h jmpexit9 ;= thre: leadx,m ovah,9 int21h mov ah,2 ov dl,0h int 21h mov dl,0ah int 21h jmpexit9 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 17/19;= four: leadx,n movah,9 int21h mov ah,2 ov dl,0h int 21 mov dl,0ah int 21h exit9:jmpbbb quartendp codends endstar 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 18/19 程序运行框图 4/14/2019 汇编课程设计报告 显示系统时间和日期 - 百度文库https:/ 19/19