CloCk
CloCk
سلام دوست من
اینم یه ساعت دیجیتالی فقط کافیه کد زیر رو تو امولاتور کپی کنی همین
البته این کد به صورت کامل کامل
data segment
code segment
stack segmentExtra segment
Dot DB 004H,'$'
Hour DB ?
Minute DB ?
Second DB ?
HLine DB '--$'
VLine DB '|$'
Year DW ?
Month DB ?
Day DB ?
Day_of_week DB ?
Print_Year DB 4 dup (' '),'$'
Print_Day DB 2 dup ('0'),'$'
Sunday DB 'Sunday$'
Monday DB 'Monday$'
Tuesday DB 'Tuesday$'
Wednesday DB 'Wednesday$'
Thursday DB 'Thursday$'
Friday DB 'Friday$'
Saturday DB 'Saturday$'
January DB 'January$'
February DB 'February$'
March DB 'March$'
April DB 'April$'
May DB 'May$'
June DB 'June$'
July DB 'July$'
August DB 'August$'
September DB 'September$'
October DB 'October$'
November DB 'November$'
December DB 'December$'
ends
stack segment
dw 128 dup(0)
ends
;*********** Main Menu ***********;
code segment
start:
MOV AX, data
MOV DS, AX
MOV ES, AX
MOV AH , 2Ch ; System Time
INT 21h
MOV Hour , CH
MOV Minute , CL
MOV Second , DH
CALL Draw_Hour
CALL Draw_Minute
CALL Print_System_Date
BLink:
;****** CLEAR SCREEN ******
MOV AH , 6h
MOV AL , 3
MOV CH , 12
MOV CL , 39
MOV DH , 14
MOV DL , 39
MOV BH , 7
INT 10H
;****** CLEAR SCREEN ******
MOV AH , 86H
MOV CX , 15
MOV DX , 0
INT 15H
INC Second
CMP Second , 60
JNE Not_Ope
MOV Second , 0
INC Minute
CMP Minute , 60
JNE Just_Minute
MOV Minute , 0
INC Hour
CMP Hour , 24
JNE Refresh
MOV Hour , 0
MOV Minute , 0
MOV Second , 0
JMP Refresh
JMP Not_Ope
Refresh:
CALL Draw_Hour
CALL Draw_Minute
CALL Print_System_Date
JMP Not_Ope
Just_Minute:
CALL Draw_Minute
Not_Ope:
MOV DH , 12
MOV DL , 39
CALL Gotoxy
LEA DX , Dot
MOV AH , 9
INT 21H
MOV DH , 14
MOV DL , 39
CALL Gotoxy
LEA DX , Dot
MOV AH , 9
INT 21H
MOV AH , 86H
MOV CX , 15
MOV DX , 0
INT 15H
JMP BLink
MOV AH, 1
INT 21h
MOV AX, 4C00H
INT 21h
ends
;*********** Main Menu ***********;
;*********** GotoXY **************;
GotoXY PROC
MOV AH , 2H
MOV BH , 0
INT 10H
RET
GotoXY ENDP
;*********** GotoXY **************;
;*********** H-Line **************;
Draw_H_Line PROC
LEA DX , HLine
MOV AH , 9
INT 21H
RET
Draw_H_Line ENDP
;*********** H-Line **************;
;*********** V-Line **************;
Draw_V_Line PROC
LEA DX , VLine
MOV AH , 9
INT 21H
RET
Draw_V_Line ENDP
;*********** V-Line **************;
;*********** System-Date **************;
Print_System_Date Proc
;CX = year (1980-2099).
;DH = month.
;DL = day.
;AL = day of week (00h=Sunday)
MOV AH, 2AH
INT 21H
MOV Year , CX
MOV Month , DH
MOV Day , DL
MOV Day_of_week , AL
MOV DH , 11
MOV DL , 52
CALL GotoXY
CMP Day_of_week , 0
JNE Day_Not_0
LEA DX, Sunday
JMP Day_Not_6
Day_Not_0:
CMP Day_of_week , 1
JNE Day_Not_1
LEA DX, Monday
JMP Day_Not_6
Day_Not_1:
CMP Day_of_week , 2
JNE Day_Not_2
LEA DX, Tuesday
JMP Day_Not_6
Day_Not_2:
CMP Day_of_week , 3
JNE Day_Not_3
LEA DX, Wednesday
JMP Day_Not_6
Day_Not_3:
CMP Day_of_week , 4
JNE Day_Not_4
LEA DX, Thursday
JMP Day_Not_6
Day_Not_4:
CMP Day_of_week , 5
JNE Day_Not_5
LEA DX, Friday
JMP Day_Not_6
Day_Not_5:
LEA DX, Saturday
Day_Not_6:
MOV AH , 09H
INT 21H
MOV AL , Day ; AX=Day
MOV AH , 0
MOV CL , 10
LEA BX , Print_Day
ADD BX , 1
YearG1:
DIV CL
ADD AH , 48
MOV [BX] , AH
MOV AH , 0
DEC BX
CMP AX , 0
JNE YearG1
MOV DH , 12
MOV DL , 52
CALL GotoXY
LEA DX, Print_Day
MOV AH, 9
INT 21H
MOV DH , 13
MOV DL , 52
CALL GotoXY
CMP Month , 1
JNE Month_Not_1
LEA DX, January
JMP Month_Not_12
Month_Not_1:
CMP Month , 2
JNE Month_Not_2
LEA DX , February
JMP Month_Not_12
Month_Not_2:
CMP Month , 3
JNE Month_Not_3
LEA DX, March
JMP Month_Not_12
Month_Not_3:
CMP Month , 4
JNE Month_Not_4
LEA DX, April
JMP Month_Not_12
Month_Not_4:
CMP Month , 5
JNE Month_Not_5
LEA DX, May
JMP Month_Not_12
Month_Not_5:
CMP Month , 6
JNE Month_Not_6
LEA DX, June
JMP Month_Not_12
Month_Not_6:
CMP Month , 7
JNE Month_Not_7
LEA DX, July
JMP Month_Not_12
Month_Not_7:
CMP Month , 8
JNE Month_Not_8
LEA DX, August
JMP Month_Not_12
Month_Not_8:
CMP Month , 9
JNE Month_Not_9
LEA DX, September
JMP Month_Not_12
Month_Not_9:
CMP Month , 10
JNE Month_Not_10
LEA DX, October
JMP Month_Not_12
Month_Not_10:
CMP Month , 11
JNE Month_Not_11
LEA DX, November
JMP Month_Not_12
Month_Not_11:
LEA DX, December
Month_Not_12:
MOV AH , 09H
INT 21H
MOV AX , Year ; AX=Year
MOV CL , 10
LEA BX , Print_Year
ADD BX , 3
YearG10:
DIV CL
ADD AH , 48
MOV [BX] , AH
MOV AH , 0
DEC BX
CMP AX , 0
JNE YearG10
MOV DH , 14
MOV DL , 52
CALL GotoXY
LEA DX, Print_Year
MOV AH, 9
INT 21H
RET
Print_System_Date ENDP
;*********** System-Date **************;
;*********** Hour **************;
Draw_Hour PROC
;****** CLEAR SCREEN ******
MOV AH , 6h
MOV AL , 4
MOV CH , 11
MOV CL , 30
MOV DH , 14
MOV DL , 37
MOV BH , 7
INT 10H
;****** CLEAR SCREEN ******
MOV AL , Hour
MOV AH , 0
MOV CL , 10
DIV CL
PUSH AX
CMP AL , 0
JNE Next1
;Print 0 (Left)
MOV DH , 11
MOV DL , 30
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 29
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 32
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 29
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 32
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 30
CALL GotoXY
CALL Draw_H_Line
JMP Fin
Next1:
CMP AL , 1
JNE Next2
;Print 1 (Left)
MOV DH , 12
MOV DL , 32
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 32
CALL GotoXY
CALL Draw_V_Line
JMP Fin
Next2:
;Print 2 (Left)
MOV DH , 11
MOV DL , 30
CALL GotoXY
CALL Draw_H_Line
MOV DH , 13
MOV DL , 30
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 32
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 29
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 30
CALL GotoXY
CALL Draw_H_Line
Fin:
POP AX
CMP AH , 0
JNE Next3
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
JMP Fin1
Next3:
CMP AH , 1
JNE Next4
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
JMP Fin1
Next4:
CMP AH , 2
JNE Next5
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
JMP Fin1
Next5:
CMP AH ,3
JNE Next6
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
JMP Fin1
Next6:
CMP AH , 4
JNE Next7
MOV DH , 12
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
JMP Fin1
Next7:
CMP AH , 5
JNE Next8
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
JMP Fin1
Next8:
CMP AH , 6
JNE Next9
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
JMP Fin1
Next9:
CMP AH , 7
JNE Next10
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
JMP Fin1
Next10:
CMP AH , 8
JNE Next11
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
JMP Fin1
Next11:
MOV DH , 11
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 34
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 37
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 35
CALL GotoXY
CALL Draw_H_Line
Fin1:
RET
Draw_Hour ENDP
;*********** Hour **************;
;*********** Minute **************;
Draw_Minute PROC
;****** CLEAR SCREEN ******
MOV AH , 6h
MOV AL , 4
MOV CH , 11
MOV CL , 42
MOV DH , 14
MOV DL , 49
MOV BH , 7
INT 10H
;****** CLEAR SCREEN ******
MOV AL , Minute
MOV AH , 0
MOV CL , 10
DIV CL
PUSH AX
CMP AL , 0
JNE Next12
;Print 0 (Left)
MOV DH , 11
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
JMP Fin2
Next12:
CMP AL , 1
JNE Next13
;Print 1 (Left)
MOV DH , 12
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
JMP Fin2
Next13:
CMP AL , 2
JNE Next14
;Print 2 (Left)
MOV DH , 11
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 13
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
JMP Fin2
Next14:
CMP AL , 3
JNE Next15
;Print 0 (Left)
MOV DH , 11
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
JMP Fin2
Next15:
CMP AL , 4
JNE Next16
;Print 0 (Left)
MOV DH , 12
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
JMP Fin2
Next16:
CMP AL , 5
JNE Next17
;Print 5 (Left)
MOV DH , 11
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
JMP Fin2
Next17:
;Print 6 (Left)
MOV DH , 11
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 41
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 44
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 42
CALL GotoXY
CALL Draw_H_Line
Fin2:
POP AX
CMP AH , 0
JNE Next18
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
JMP Fin3
Next18:
CMP AH , 1
JNE Next19
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
JMP Fin3
Next19:
CMP AH , 2
JNE Next20
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
JMP Fin3
Next20:
CMP AH ,3
JNE Next21
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
JMP Fin3
Next21:
CMP AH , 4
JNE Next22
MOV DH , 12
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
JMP Fin3
Next22:
CMP AH , 5
JNE Next23
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
JMP Fin3
Next23:
CMP AH , 6
JNE Next24
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
JMP Fin3
Next24:
CMP AH , 7
JNE Next25
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
JMP Fin3
Next25:
CMP AH , 8
JNE Next26
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
JMP Fin3
Next26:
MOV DH , 11
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 12
MOV DL , 46
CALL GotoXY
CALL Draw_V_Line
MOV DH , 12
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 13
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
MOV DH , 14
MOV DL , 49
CALL GotoXY
CALL Draw_V_Line
MOV DH , 15
MOV DL , 47
CALL GotoXY
CALL Draw_H_Line
Fin3:
RET
Draw_Minute ENDP
;*********** Minute **************;
end start