DOS汇编显示当前时间

assume cs:codesg

datasg segment
	format db 'yy/MM/dd HH:mm:ss','$'
	yMdHms	db 9, 8, 7, 4, 2, 0
datasg ends

codesg segment
	start:
		mov ax, datasg
		mov ds, ax
		mov si, offset format
		
		mov di, offset yMdHms
		mov cx, 6
	deal:
		push cx
		mov al, [di]		;指定要访问的内存地址,处理年份
		out 70H, al
		in al, 71H			;读取数据
		
		
		mov ah, al
		mov cl, 4
		shr ah, cl
		and al, 00001111B
		
		add ah, 30H
		add al, 30H
		
		mov byte ptr [si], ah
		mov byte ptr [si+1], al
		add si, 3
		inc di
		pop cx
	loop deal
	
	mov dx, offset format
	mov ah, 09H
	int 21H
	
	mov ax, 4c00H
	int 21H
codesg ends

end start



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汇编语言可以通过调用系统时间和日期函数来显示当前的日期和时间。不同的操作系统汇编语言可能有不同的实现方式,以下是一个在 DOS 系统下使用汇编语言显示日期和时间的示例程序: ``` .model small .stack 100h .data msg1 db "Today is ", "$" msg2 db "Current time is ", "$" .code main proc ; 显示日期 mov ah, 2Ah ; 调用 DOS 中断 2Ah 获取日期 int 21h ; 执行中断 mov dl, dh ; 保存月份 mov ah, 2Ch ; 调用 DOS 中断 2Ch 获取年份 int 21h ; 执行中断 mov bl, dh ; 保存年份 mov ah, 2Bh ; 调用 DOS 中断 2Bh 获取日期 int 21h ; 执行中断 mov cl, dl ; 保存日期 mov ah, 9h ; 调用 DOS 中断 9h 显示字符串 lea dx, msg1 ; 加载消息 int 21h ; 执行中断 mov ah, 2 ; 将数字转换为 ASCII 码并显示 mov al, dl add al, 30h ; 转换为 ASCII 码 mov dl, al int 21h mov ah, 2 ; 将数字转换为 ASCII 码并显示 mov al, cl add al, 30h ; 转换为 ASCII 码 mov dl, al int 21h mov ah, 2 ; 将数字转换为 ASCII 码并显示 mov al, bl add al, 30h ; 转换为 ASCII 码 mov dl, al int 21h ; 显示时间 mov ah, 2Ch ; 调用 DOS 中断 2Ch 获取小时 int 21h ; 执行中断 mov cl, dh ; 保存小时 mov ah, 2Dh ; 调用 DOS 中断 2Dh 获取分钟 int 21h ; 执行中断 mov dl, dh ; 保存分钟 mov ah, 2Eh ; 调用 DOS 中断 2Eh 获取秒钟 int 21h ; 执行中断 mov bl, dh ; 保存秒钟 mov ah, 9h ; 调用 DOS 中断 9h 显示字符串 lea dx, msg2 ; 加载消息 int 21h ; 执行中断 mov ah, 2 ; 将数字转换为 ASCII 码并显示 mov al, cl add al, 30h ; 转换为 ASCII 码 mov dl, al int 21h mov ah, 2 ; 将数字转换为 ASCII 码并显示 mov al, dl add al, 30h ; 转换为 ASCII 码 mov dl, al int 21h mov ah, 2 ; 将数字转换为 ASCII 码并显示 mov al, bl add al, 30h ; 转换为 ASCII 码 mov dl, al int 21h mov ah, 4Ch ; 调用 DOS 中断 4Ch 退出程序 int 21h ; 执行中断 main endp end main ``` 注意:该示例程序仅适用于 DOS 系统,其他系统汇编语言需要根据对应的系统调用和语法进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值