forked from shoaib30/Microprocessor-Lab
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCalculator_Hardware.asm
More file actions
127 lines (110 loc) · 2.27 KB
/
Calculator_Hardware.asm
File metadata and controls
127 lines (110 loc) · 2.27 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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
assume cs:code,ds:data
data segment
PA EQU 44a0h ;20a0h
PB EQU 44a1h ;20a1h
PC EQU 44a2h ;20a2h
CR EQU 44a3h ;20a3h
rowVal db ?
colVal db ?
sCode db ?
NUM1 db ?
NUM2 db ?
OP db ?
data end
code segment
START: MOV ax,data
MOV ds,ax
NUMM1: CALL INP
MOV NUM1,al
CALL DELAY
CALL DISP
OPR: CALL INP
MOV OP,al
CALL DELAY
;CALL DISP
CMP OP,11d
JE P1
MOV dl,'-'
JMP DIP
P1: MOV dl,'+'
DIP: MOV ah,2
INT 21h
NUM2: CALL INP
MOV NUM2,al
CALL DELAY
CALL DISP
CMP OP,11d
JE AD
SU: MOV al.NUM1
SUB al,NUM2
JMP PRIN
AD: MOV al,NUM1
ADD al,NUM2
JMP PRIN
PRIN: PUSH ax
MOV dl,'='
MOV ah,2
INT 21h
POP ax
CALL DISP
MOV ah,4ch
INT 21h
INP PROC
AGN: MOV al,90h ;for A i/p and B,C o/p
MOV dx,CR
OUT dx,al
MOV bl,01h
MOV bh,3h
MOV ah,01
MOV cl,00h
NXTROW: MOV dx,PC
MOV al,bl
OUT dx,al
MOV dx,PA
IN al,dx
CMP al,00h
JNE CAL
ADD cl,08h
INC ah
SHL bl,01h
DEC bh
JNZ NXTROW
JMP AGN
CAL: MOV rowVal,ah
MOV ah,00h
ROTA: ROR al,01
JC NXT
INC ah
INC cl
JMP ROTA
NXT: MOV sCode,cl
MOV colVal,ah
MOV al,cl
RET
INP ENDP
DISP PROC
AAM
ADD ax,3030h
MOV dl,ah
MOV ah,2
PUSH ax
INT 21h
POP ax
MOV dl,al
MOV ah,2
INT 21h
RET
DISP ENDP
DELAY PROC
PUSH si
MOV si,0ffh
l2: MOV di,0ffh
l1: DEC di
JNZ l1
DEC si
JNZ l2
POP si
RET
DELAY ENDP
CODE ENDS
END START