-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtimer60s.asm
More file actions
72 lines (56 loc) · 1.02 KB
/
timer60s.asm
File metadata and controls
72 lines (56 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
SHOW MACRO B ;show ASCII B
MOV AH,02H
MOV DL,B
INT 21H
ENDM
STIME MACRO ;show time xx:xx:xx
MOV SI,OFFSET TIME
SHOW 0DH
SHOW [SI]
SHOW [SI+01H]
ENDM
ADD1S MACRO ;+1s
MOV SI,OFFSET TIME
INC BYTE PTR[SI+01H]
CMP BYTE PTR[SI+01H],3AH
JB C1
MOV BYTE PTR[SI+01H],30H
INC BYTE PTR[SI]
CMP BYTE PTR[SI],36H
JB C1
MOV BYTE PTR[SI],30H
MOV BYTE PTR[SI+01H],30H
C1: NOP
ENDM
DELAY MACRO ;delay 1s
MOV AX,0002DH
MOV BX,07FFFH
D1: DEC BX
JNZ D1
MOV BX,07FFFH
DEC AX
JNZ D1
ENDM
DATA SEGMENT
TIME DB 30H,30H
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
STA DB 20 DUP(?)
TOP EQU LENGTH STA
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
MOV AX,TOP
MOV SP,AX
MLOOP: STIME
DELAY
ADD1S
JMP MLOOP
MOV AX,4C00H
INT 21H
CODE ENDS
END START