社区
community_281
帖子详情
汇编语言来完成"按指定格式显示时间程序设计"
岳丰源
2007-12-01 07:53:53
基本功能:读取微机系统当前日期及时钟信息,并按英文格式显示在屏幕上。如2008年1月1日14点38分28秒,显示为“JAN 1,2008 14:38:28”。
增强功能:计算该日期是当年的第几天并显示结果。
...全文
365
5
打赏
收藏
汇编语言来完成"按指定格式显示时间程序设计"
基本功能:读取微机系统当前日期及时钟信息,并按英文格式显示在屏幕上。如2008年1月1日14点38分28秒,显示为“JAN 1,2008 14:38:28”。 增强功能:计算该日期是当年的第几天并显示结果。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
knowledge_Is_Life
2008-05-01
打赏
举报
回复
这个简单啊,网上搜一下就得到答案了.
岳丰源
2008-03-07
打赏
举报
回复
我的源代码:
希望有高手进行指点:
DIS MACRO A
PUSH DX ;DIS 宏定义开始
MOV DL,A ;显示特殊字符
MOV AH,2
INT 21H
POP DX
ENDM
WRITE MACRO B ;WRITE 宏定义开始
LEA DX,B ;显示字符串
MOV AH,9
INT 21H
ENDM
PRIN MACRO C,D ;PRIN宏定义开始
MOV AL,C ;功能:显示数据
CBW ;特殊字符
CALL RADIX
DIS D
ENDM
stack segment ;堆栈段开始
db 200 dup(0)
stack ends
data segment ;数据段开始
INP db 0dh,0ah,'The information of day and time display:$'
OUTPUT db 0dh,0ah,'Today of this year is: $'
TAB db 'JAN$','FEB$','MAR$','APR$','MAY$','JUN$',
'JUL$','MUG$','SEP$','OCT$','NOV$','DEC$'
DAT dw 0,31,59,90,120,151,181,212,243,273,304,334
DAT1 DW 0,31,60,91,121,152,182,213,244,274,305,335
;闰年查DAT1,非闰年查DAT;用查表的方法来显示月份和统计天数
data ends
code segment ;代码段开始
assume cs:code,ds:data,ss:stack
start:
mov ax,data ;
mov ds,ax ;数据段地址给DS
mov ax,stack ;
mov ss,ax
WRITE INP ;提示显示信息
call print ;调用显示日期和时间的子程序
WRITE OUTPUT ;提示统计信息
call ACOUNT ;调用统计第几天的子程序
mov ah,4ch ;结束
int 21h
RADIX PROC NEAR ;子程序定义开始
push cx ;功能:将字的十六为无符号数二进数转换成十进制并显示出来
push dx ;入口参数:AX --待转换的十六位无符号二进数
mov cx,0 ;无出口参数
Lop: ;
mov dx,0 ;把高位数置0
mov bx,10 ;进行十进制转换
div bx
push dx
inc cx
or ax,ax ;AX!=0继续循环
jne Lop
Lop1: pop ax
cmp al,10 ;判断一下是否在0-9之间
jb L ;0-9之间的数转换为ASCII代码
add al,7 ;A-F之间的转换
L: add al,30h
mov dl,al ;将转换的数显示出来
mov ah,2
int 21h
dec cx
jne Lop1
pop dx ;恢复DX的内容
pop cx ;恢复CX的内容
ret
RADIX ENDP ;
PRINT PROC ;显示的子程序开始定义
mov ah,2ah ;功能显示英文格式的日期和时间
int 21h ;暂时保护日、月、年
push dx ;
push cx ;把月份给BL,用于查表
mov bl,dh ;月份从1开始,地址从0
dec bl ;开始,应减1
mov bh,0 ;
mov cl,2 ;
shl bl,cl ;乘以4,确定月份所在地址
lea si,TAB ;
add si,bx ;
mov dx,si ;把确定的月份地址传给
mov ah,9 ;DX,调用9号功能,显示
int 21h ;英文月份简写
pop cx ;释放保护的月、日数
pop dx ;
DIS ' ' ;显示空格
PRIN DL,',' ;显示天数和','
mov ax,cx ;显示年份
call RADIX ;
DIS ' ' ;
mov ah,2ch ;获取当前的小时、分、秒
int 21h ;并已时间的格式显示出来
PRIN ch,':' ;显示小时
PRIN cl,':' ;显示分钟
PRIN dh,' ' ;显示秒钟
ret ;显示的子程序结束
PRINT ENDP ;
ACOUNT PROC NEAR ;统计天数的子程序
mov ah,2ah ;调用日期指令
int 21h ;功能:统计当天是当年的第几天
mov bl,dh ;把月份给BL,用于查表
dec bl ;月份从1开始,地址从0
shl bl,1 ;乘以2,确定要查月份的
mov bh,0 ;开始前的天数和
;mov ax,cx ;GETYEAR入口参数是CX
call GETYEAR
cmp ax,1 ;
jnz NLEAP ;判断是否为闰年
mov bx,DAT1[bx] ;若是闰年查表DAT1
jmp AGAIN ;
NLEAP:
mov bx,DAT[bx] ;若不是闰年查表DAT
AGAIN:
mov al,dl ;获取当月天数
mov ah,0 ;把查表所得和当月
add ax,bx ;加一起就是当年的
call RADIX ;第几天
RET
ACOUNT ENDP
GETYEAR PROC ;判断是否为闰年的子程序定义
push bx
push cx ;入口参数是-CX
push dx ;出口参数十-Ax
;若AX为1当年就是闰年
mov ax,cx
cwd ;若AX为0当年不是闰年
mov bx,400 ;年份除以400
div bx ;
cmp dx,0 ;若能够整除是闰年
jz M ;
cwd
mov ax,cx ;不能够整除进行第二轮判断
mov bx,4
div bx
cmp dx,0
jnz N ;若不能够被4整除就不是闰年
mov bx,100 ;若能够被4整除然后再除以100
div bx
cmp dx,0
jz N
M: mov ax,1 ;若不能够被100整除就是闰年
jmp Q
N : mov ax,0 ;若能够被100整除就不是闰年
Q:
pop dx
pop cx ;恢复保护
pop bx
ret
GETYEAR ENDP
code ends
end start
wuyi8808
2008-02-13
打赏
举报
回复
沙发。
查看内存使用情况的汇编源代码
查看内存使用情况的汇编源代码
编译器(gcc、g++)
编译器(gcc、g++)
汇编语言
程序设计
入门
前言:公号 「编程有料」后台回复 “大礼包” 即可获取近1000本助力你编程之路的电子书
汇编语言
程序设计
一,
汇编语言
程序设计
概述1,
程序设计
语言2,
汇编语言
源程序3,
汇编语言
程序开发过程二,
汇编语言
基本语法(重点)1,
汇编语言
的语句类型2,常量、标识符和表达式3,
汇编语言
程序伪指令(重点)4,DOS系统功能调用(重点)三,
汇编语言
程序设计
1,子程序的调用2,子程序的返回3,参数的传递 一,
汇编语言
程序设计
概述 1,
程序设计
语言 机器语言 用二进制表示,能够被机器直接识别
汇编语言
采用助记符表示机.
HNUST
汇编语言
程序设计
期末复习
一、简答题(30分 背概念)二、计算题三、程序填空题四、
程序设计
题(40分 6,7章内容)如果不会写就写个框架 实在不会就用C语言写五、开放大题:谈谈对本课程的看法(个人用GPT生成的答案)
汇编语言
程序设计
是计算机专业必修的专业基础课,
汇编语言
是计算机及电子信息类专业十分重要的基础课程,是学好操作系统、编译原理的知识准备。它能充分发挥和利用计算机硬件特性的语言,能够
完成
高级语言难以胜任甚至无法
完成
的任务
汇编语言
不像其他大多数的
程序设计
语言一样被广泛用于
程序设计
。
汇编语言
程序设计
——屏幕
显示
和键盘输入
汇编语言
程序设计
——屏幕
显示
和键盘输入 在
汇编语言
中,凡是涉及到键盘输入、屏幕
显示
等输入输出操作,都可以用软件中断指令INT n的功能调用来实现。所谓功能调用是计算机系统设计的简单 I / O 子程序,能方便地访问系统的硬件资源。 在微机系统中,功能调用分两个层次,最底层的是 BIOS 功能调用,其次是 DOS 功能调用,它们都是通过软件中断指令INT n来进行调用的。除了用 IN...
community_281
662
社区成员
253,722
社区内容
发帖
与我相关
我的任务
community_281
提出问题
复制链接
扫一扫
分享
社区描述
提出问题
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章