📄 8.asm
字号:
;
STACK SEGMENT STACK 'STACK'
DB 1024 DUP (0)
STACK ENDS
;
DATA SEGMENT
BWORD EQU THIS BYTE
R0 DW (?)
R1 DW (?)
R2 DW (?)
R3 DW (?)
R4 DW (?)
R5 DW (?)
R6 DW (?)
R7 DW (?)
;
TEMP1 DW (?)
TEMP2 DW (?)
TEMP3 DW (?)
TEMP4 DW (?)
;
LED1 DB (?)
LED2 DB (?)
LED3 DB (?)
LED4 DB (?)
LED5 DB (?)
LED6 DB (?)
LED7 DB (?)
LED8 DB (?)
LED9 DB (?)
LED10 DB (?)
LED11 DB (?)
LED12 DB (?)
LED13 DB (?)
LED14 DB (?)
LED15 DB (?)
LED16 DB (?)
LED17 DB (?)
LED18 DB (?)
LED19 DB (?)
;------------------------------------------------------------------
YEAR_REG DB (?)
MOTH_REG DB (?)
DATE_REG DB (?)
S_REG DB (?)
M_REG DB (?)
H_REG DB (?)
;------------------------------------------------------------------
F0 DB 7
DB 5FH,0AH,0,0
DB 7CH,0AH,1,-1
DB 7CH,0AH,1,0
DB 5FH,0AH,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0,0,-1
F1 DB 7
DB 5FH,0,0,0
DB 7CH,0,1,-1
DB 7CH,0,1,0
DB 5FH,0,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0,0,-1
F2 DB 7
DB 5FH,0AH,0,0
DB 7CH,0,1,-1
DB 7CH,0AH,1,0
DB 5FH,0AH,0,1
DB 7CH,0,0,1
DB 7CH,0AH,-1,0
DB 5FH,0AH,0,-1
F3 DB 7
DB 5FH,0AH,0,0
DB 7CH,0,1,-1
DB 7CH,0,1,0
DB 5FH,0AH,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0AH,0,-1
F4 DB 7
DB 5FH,0,0,0
DB 7CH,0AH,1,-1
DB 7CH,0,1,0
DB 5FH,0,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0AH,0,-1
F5 DB 7
DB 5FH,0AH,0,0
DB 7CH,0AH,1,-1
DB 7CH,0,1,0
DB 5FH,0AH,0,1
DB 7CH,0AH,0,1
DB 7CH,0,-1,0
DB 5FH,0AH,0,-1
F6 DB 7
DB 5FH,0AH,0,0
DB 7CH,0AH,1,-1
DB 7CH,0AH,1,0
DB 5FH,0AH,0,1
DB 7CH,0AH,0,1
DB 7CH,0,-1,0
DB 5FH,0AH,0,-1
F7 DB 7
DB 5FH,0AH,0,0
DB 7CH,0,1,-1
DB 7CH,0,1,0
DB 5FH,0,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0,0,-1
F8 DB 7
DB 5FH,0AH,0,0
DB 7CH,0AH,1,-1
DB 7CH,0AH,1,0
DB 5FH,0AH,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0AH,0,-1
F9 DB 7
DB 5FH,0AH,0,0
DB 7CH,0AH,1,-1
DB 7CH,0,1,0
DB 5FH,0AH,0,1
DB 7CH,0AH,0,1
DB 7CH,0AH,-1,0
DB 5FH,0AH,0,-1
;-----------------------------------------------------------------
ROW DB 20
COL DB 10
T0 DB 0
T1 DB 0
T2 DB 0
T3 DB 0
T4 DB 0
T5 DB 0
;-----------------------------------------------------------------
MONDAY DB 'M','o','n','d','a','y' ;6
TUESDAY DB 'T','u','e','s','d','a','y' ;7
WEDNESDAY DB 'W','e','d','n','e','s','d','a','y' ;9
THURESDAY DB 'T','h','u','r','s','d','a','y' ;8
FRIDAY DB 'F','r','i','d','a','y' ;6
SATURDAY DB 'S','a','t','u','r','d','a','y' ;8
SUNDAY DB 'S','u','n','d','a','y' ;6
WEEK_COL DB 40
;--------------------------------------------------------------------
DATA ENDS
;
VIDEO SEGMENT AT 0B800H
WD_BUFFER LABEL WORD
V_BUFF DB 25*80*2 DUP (?)
VIDEO ENDS
;
PROGrAM SEGMENT
;
MAIN PROC FAR
ASSUME CS:PROGRAM,DS:DATA,SS:STACK,ES:VIDEO
;
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV AX,VIDEO
MOV ES,AX
MOV TEMP1,0000H
MOV TEMP2,184FH
MOV BH,0FH
CALL CLR_SCREEN
CALL WEEK
DO_WAIT: MOV AH,1
INT 16H
JZ NO_KEY
YES_KEY: MOV AH,0
INT 16H
CMP AL,1BH
JNZ NO_KEY
CALL EXIT
NO_KEY: CALL READ_TIME
CALL READ_DATE
CALL CONVERT_ASCII
MOV AX,0A2eH
MOV CX,092BH
CALL DISPLAY
MOV CH,0AH
CALL DISPLAY
MOV CL,21H
CALL DISPLAY
MOV CH,09H
CALL DISPLAY
CALL MOVE
CALL LOGO
CALL DISPLAY_DATE
JMP DO_WAIT
EXIT: MOV TEMP1,0000H
MOV TEMP2,184FH
MOV BH,0FH
CALL CLR_SCREEN
RET
MAIN ENDP
READ_TIME PROC NEAR
MOV AH,02H
INT 1AH
MOV H_REG,CH
MOV M_REG,CL
MOV S_REG,DH
RET
READ_TIME ENDP
READ_DATE PROC NEAR
MOV AH,04H
INT 1AH
MOV YEAR_REG,CL
MOV MOTH_REG,DH
MOV DATE_REG,DL
RET
reAd_dAte ENDP
CONVERT_ASCII PROC NEAR
MOV AL,H_REG
AND AL,0F0H
MOV CL,4
ROR AL,CL
ADD AL,30H
MOV LED1,AL
MOV AL,H_REG
AND AL,0FH
ADD AL,30H
MOV LED2,AL
MOV AL,M_REG
AND AL,0F0H
MOV CL,4
ROR AL,CL
ADD AL,30H
MOV LED4,AL
MOV AL,M_REG
AND AL,0FH
ADD AL,30H
MOV LED5,AL
MOV AL, S_REG
AND AL,0F0H
MOV CL,4
ROR AL,CL
ADD AL,30H
MOV LED7,AL
MOV AL,S_REG
AND AL,0FH
ADD AL,30H
MOV LED8,AL
MOV LED3,3AH
MOV LED6,3AH
MOV AL,YEAR_REG
AND AL,0F0H
MOV CL,4
ROR AL,CL
ADD AL,30H
MOV LED12,AL
MOV AL,YEAR_REG
AND AL,0FH
ADD AL,30H
MOV LED13,AL
MOV AL,MOTH_REG
AND AL,0F0H
MOV CL,4
ROR AL,CL
ADD AL,30H
MOV LED15,AL
MOV AL,MOTH_REG
AND AL,0FH
ADD AL,30H
MOV LED16,AL
MOV AL,DATE_REG
AND AL,0F0H
MOV CL,4
ROR AL,CL
ADD AL,30H
MOV LED18,AL
MOV AL,DATE_REG
AND AL,0FH
ADD AL,30H
MOV LED19,AL
MOV LED10,32H
MOV LED11,30H
MOV LED14,2DH
MOV LED17,2DH
RET
CONVERT_ASCII ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -