⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time.asm

📁 汇编编程艺术
💻 ASM
字号:
StdGrp		group	stdlib,stddata
stddata		segment	para public 'sldata'
stddata		ends
;
stdlib		segment	para public 'slcode'
		assume	cs:stdgrp
		extrn	sl_itoa2:far

; TTOA-		(Time to ASCII) Converts an MS-DOS format time to an ASCII
;    		string.
;
; TTOA2-        As above, but it does not preserve DI, it leaves DI pointing
;		at the zero terminating byte of the string.
;
; xTTOA-	Reads the system time and converts it to a string as per
;		TTOA.
;
; xTTOA2-	Reads the system time and converts it to a string as per
;		TTOA2.
;
;
; inputs:
;
;		CH-	Hours (0..23)		(TTOA/TTOA2 only)
;	        CL-	Minutes (0..59)		(TTOA/TTOA2 only)
;		DH-	Seconds (0..59)     	(TTOA/TTOA2 only)
;		DL-	Seconds/100 (0..99)    	(TTOA/TTOA2 only)
;		ES:DI-	Points at first byte of buffer to hold date string
;
;		Note: xTTOA and xTTOA2 read the time from the system clock.
;
; outputs:	es:di-	Points at start of date string (TTOA/xTTOA).
;		es:di-	Points at zero terminating byte at end of date
;			string (TTOA2/xTTOA2 only).
;
; Note: The destination buffer must be large enough to hold the string and
;	zero terminating byte.


		public	sl_xTTOA
sl_xTTOA	proc	far
		push	ax
		push	cx
		push	dx

		mov	ah, 2ch		;MS-DOS Get Time opcode
		int	21h		;Go get the system time
		call	far ptr sl_TTOA	;Convert it to a string.

		pop	dx
		pop	cx
		pop	ax
		ret
sl_xTTOA	endp

		public	sl_xTTOA2
sl_xTTOA2	proc	far
		push	ax
		push	cx
		push	dx

		mov	ah, 2ch			;MS-DOS Get Time opcode
		int	21h			;Go get the system date
		call	far ptr sl_TTOA2	;Convert it to a string.

		pop	dx
		pop	cx
		pop	ax
		ret
sl_xTTOA2	endp


		public	sl_TTOA
sl_TTOA		proc	far
		push	di
		call	far ptr sl_TTOA2
		pop	di
		ret
sl_TTOA		endp

		public	sl_TTOA2
sl_TTOA2	proc	far
		pushf
		push	ax
		push	dx
		cld

; Output Hours:

		mov	ah, 0
		mov	al, ch
		call	Put2
		stosb

; Output Minutes:

		mov	al, cl
		call	Put2
		stosb

; Output Seconds:

		mov	al, dh
		call	Put2
		pop	dx
		pop	ax
		popf
		ret
sl_TTOA2	endp

put2		proc	near
		cmp	al, 10
		jae	TwoDigits
		mov	byte ptr es:[di], '0'
		inc	di
TwoDigits:	call	sl_itoa2
		mov	al, ':'
		ret
Put2		endp

stdlib		ends
		end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -