汇编课程设计报告 显示系统时间和日期精要.docx

汇编课程设计报告 显示系统时间和日期精要.docx

汇编课程设计报告 显示系统时间和日期精要

汇编课程设计报告 ——显示系统时间和日期 题目:显示系统时间和日期 设计目的 将cmd界面清屏,变成黑底 从cmos ram里获得系统时间,并在cmd界面中间显示系统时间和日期,左下角显示姓名学号 获取系统年份,判断是否是闰年,并在屏幕左下角显示 获取月份判断第几季度,并在屏幕左下角显示 功能设计 首先确定在cmos ram里边讯处系统时间日期的地址70h,以及存储系统时间的地址71h以及分别所占的单元长度 将整个屏幕的除了最后一行全部用黑底覆盖,便于显示时间以及个人信息。 把系统年份调出,放在bx里进行运算,判断是否是闰年,并在屏幕左下方显示 把系统月份调出放在bx里进行比较,判断是哪个季度,并在屏幕左下方显示 算法设计 读取日期和时间这部分代码首先获取秒的地址,分别取出高八位和低八位然后把对应的BCD码加上30h变成对应的ASCII码,便于显示。读取完秒之后地址依次累加,循环读取出日期以及时和分 因为一共有六个信息,所以每个信息读取完之后继续循环读取下一个信息。 清屏的时候直接用黑底对整个cmd界面进行逐字的黑底覆盖,从而使时间可以显示在屏幕的中央。 读取到系统年份后,除4看是否能整除,因为系统年份前两位都是20,所以把后两位读取出来之后判定是否能被4整除,能被整除,就是闰年 读取到系统月份之后判断是否对应1到12这12个数字,对应1到3就跳转到输出第一季度,以此类推,输出系统时间对应的季度 运行结果: 代码实现: assume cs:code,ds:data,ss:stack data segment db 9h,8h,7h,4h,2h,0 db // :: t db 6 dup(0),$ s1 db lvhaoyan$ P db 0dh,0ah,This is first quarter!, $ Q db 0dh,0ah,This is second quarter!, $ M db 0dh,0ah,This is third quarter!, $ N db 0dh,0ah,This is fourth quarter!, $ Y db 0dh,0ah,This is a leap year!, $ S db 0dh,0ah,This is not a leap year!, $ data ends stack segment dw 128 dup (0) ;定义栈段字形 stack ends code segment start: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,128 lea dx,s1 mov ah,9h int 21h call ifleapyear sss: call quarter bbb: call ClearScreen ;清屏 Show: pop ax pop bx pop dx mov cx,6 call xianshi push bx xunhuan: push cx call ShowTimeAndDate pop cx loop xunhuan mov ax,4c00h int 21h ;================================================ xianshi: mov ax,data mov ds,ax mov ax,0b800h ;0b800h是文本模式下dos显存起始地址 mov es,ax mov si,0 mov di,160*12+30*2 ;显示器显示地址 ret ;==========================

文档评论(0)

1亿VIP精品文档

相关文档