-
Notifications
You must be signed in to change notification settings - Fork 0
/
task-8.asm
72 lines (60 loc) · 907 Bytes
/
task-8.asm
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
INP
STA DIV
INP
STA COUNT
LDA ZERO
STA RESULT
LDA COUNT
BRZ NULL
LDA DIV
BRZ NULL
BRP LoopPos
BRA LoopNeg
LoopPos LDA COUNT ; Loop for handling positive dividend
BRP PosC
BRA NegC
PosC LDA RESULT ; Part of the loop for positive divisor
ADD ONE
STA RESULT
LDA DIV
SUB COUNT
STA DIV
BRZ NULL
BRP LoopPos
BRA NULL
NegC LDA RESULT ; Part of the loop for negative divisor
SUB ONE
STA RESULT
LDA DIV
ADD COUNT
STA DIV
BRZ NULL
BRP LoopPos
BRA NULL
LoopNeg LDA COUNT ; Loop for handling negative dividend
BRP NPosC
BRA NNegC
NPosC LDA RESULT ; Part of the loop for positive divisor
SUB ONE
STA RESULT
LDA DIV
ADD COUNT
STA DIV
BRP NULL
BRA LoopNeg
NNegC LDA RESULT ; Part of the loop for negative divisor
ADD ONE
STA RESULT
LDA DIV
SUB COUNT
STA DIV
BRP NULL
BRA LoopNeg
NULL LDA RESULT
OUT
HLT
DIV DAT
COUNT DAT
RESULT DAT
ZERO DAT 0
ONE DAT 1