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

📄 q8.asm

📁 从cmos中读取信息
💻 ASM
字号:
TITLE   8086 Code Template (for EXE file)

;       AUTHOR          emu8086
;       DATE            ?
;       VERSION         1.00
;       FILE            ?.ASM

; 8086 Code Template

; 读取CMOS中的日期和时间,并显示之。
       #MAKE_EXE#

DSEG    SEGMENT 'DATA'

; TODO: add your data here!!!!

DAY	DB	'TODAY IS:  '	
MONTH	DB	'0'				;设置日期变量
	DB	'1'
	DB	'-'
DATE	DB	'0'
	DB	'1'
	DB	'-'
YEAR	DB	'2'
	DB	'0'
	DB	'0'
	DB	'0'
	DB	'         '
TIME	DB	'CURRENT TIME IS:  '
HOUR	DB	'0'				;设置时间变量
	DB	'0'
	DB	':'
MIN	DB	'0'
	DB	'0'
	DB	':'
SEC	DB	'0'
	DB	'0'
	DB	'$'
		

DSEG    ENDS

SSEG    SEGMENT STACK   'STACK'
        DB      256	DUP(?)
SSEG    ENDS

CSEG    SEGMENT 'CODE'

;*******************************************

START   PROC    

; Store return address to OS:
    	PUSH    DS
    	MOV     AX, 0
    	PUSH    AX

; set segment registers:
    	MOV     AX, DSEG
    	MOV     DS, AX
    	MOV     ES, AX


; TODO: add your code here!!!!
BEGIN:	LEA	DI,MONTH
	MOV	AH,2AH				;读日期
	INT 	21H
	MOV 	AL,DH				;月份调整
        CALL	ADJPRO
	MOV 	AL,DL				;日期调整
       	CALL	ADJPRO				
        MOV 	AX,CX				;年份调整
        MOV 	DX,0
        MOV 	BX,100
        DIV	BX
        CALL	ADJPRO
        MOV	AX,DX
        DEC	DI
        CALL 	ADJPRO
        LEA	DI,HOUR
        MOV  	AH,2CH				;读时间
        INT 	21H
        MOV	BH,DH				;在BH设置时间刷新变量
        MOV 	AL,CH				;小时调整
        CALL	ADJPRO
        MOV 	AL,CL				;分钟调整	
        CALL	ADJPRO
        MOV 	AL,DH				;秒钟调整
        CALL	ADJPRO
        LEA	DX,DAY				;显示日期和时间
        MOV	AH,09H
        INT	21H
        MOV	DL,13				;回车不换行
        MOV	AH,02H
        INT	21H
WAIT:   MOV	AH,01H				;检测是否有键盘输入
	INT	16H
	JNZ	EXIT
	MOV  	AH,2CH				;无则重新读取时间
        INT 	21H
	CMP	DH,BH				;判断时间是否需要刷新
        JZ	WAIT
        JMP	BEGIN	
EXIT:   POP	AX
        POP	DS
        MOV	AH,4CH
        INT	21H
START   ENDP
        
ADJPRO	PROC					;调整算法(二进制转换成十进制)
	AND 	AX,00FFH
        MOV 	BL,10
        DIV 	BL
        ADD 	AL,30H
        ADD 	AH,30H
	MOV	[DI],AL
	INC	DI
	MOV	[DI],AH
	INC 	DI
	INC	DI
	RET
ADJPRO	ENDP
	



; return to operating system:



;*******************************************

CSEG    ENDS 

        END    START    ; set entry point.

⌨️ 快捷键说明

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