-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdecimalupcounter.asm
More file actions
81 lines (75 loc) · 1.58 KB
/
Copy pathdecimalupcounter.asm
File metadata and controls
81 lines (75 loc) · 1.58 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
73
74
75
76
77
78
79
80
81
CLRSCR MACRO
MOV AH, 00H
MOV AL, 02H
INT 10H
ENDM
CODE SEGMENT
ASSUME CS:CODE
START:
CLRSCR ; TO CLEAR SCREEN
UP1: MOV AL, 00H ; INTIALIZE COUNTER TO 00
UP: CALL CENTER ; TO MOVE CURSOR TO THE CENTER
MOV BL, AL
CALL DISPLAY ; TO DISPLAY THE BCD NO
CALL DELAY ; DELAY
ADD AL, 01H
DAA
CMP AL, 99H
JB UP
CALL CENTER
MOV BL, AL
CALL DISPLAY
CALL DELAY
MOV AH, 01H
INT 16H ; IF ANY KEY PRESSED THEN STOP AND EXIT ELSE CONTINUE
JZ UP1
MOV AH, 4CH
INT 21H
CENTER PROC
PUSH AX
MOV DL, 39
MOV DH, 12
MOV BH,0
MOV AH,02h
INT 10h
POP AX
RET
CENTER ENDP
DISPLAY PROC
PUSH AX
MOV DL, BL
MOV CL,04
SHR DL, CL
CMP DL,09
JBE DOWN1
ADD DL,07h
DOWN1: ADD DL,30h
MOV AH,02h
INT 21h
MOV DL, BL
AND DL,0Fh
CMP DL,09H
JBE DOWN2
ADD DL,07h
DOWN2: ADD DL,30h
MOV AH,02h
INT 21h
POP AX
RET
DISPLAY ENDP
DELAY PROC
PUSH AX
PUSH BX
PUSH CX
MOV CX,07FFFh
L1: MOV BX,0FFFh
L2: DEC BX
JNZ L2
LOOP L1
POP CX
POP BX
POP AX
RET
DELAY ENDP
CODE ENDS
END START