-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdrafts.py
116 lines (82 loc) · 1.4 KB
/
drafts.py
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
def main():
pass
if __name__ == '__main__':
main()
prg = """
.ORG 8000
LOAD A, 3
LOAD B, 5
ADD B
OUT 40
"""
print(prg)
#prg_lines = prg.split('\n')
prg_lines = prg.split('\n')[1: -1]#
print(prg_lines)
asm = []
#cmd_template = {label:, line:, command:, op1:, op2:, comment:}
class Memory():
raise NotImplemented
class Processor():
def __init__(self):
pass
#PC - programm counter
#SP - stack pointer
#Commands
'''
ADD
SUB
RET
INC
DEC
'''
memory = [1,2,3,3,5,6,7,8]
a = 0
start = 0
addr = start
cmds = {
1:"add",
2:"sub",
3:"out"
}
def add():
global a
global addr
a = memory[addr + 1] + memory[addr + 2]
addr += 2
print(a)
def sub():
a = memory[addr + 1] - memory[addr + 2]
addr += 2
def out():
global addr
print("IN CMD == 3")
print(a)
addr += 1
def unknown():
global addr
print("Unknown command")
addr += 1
i = 1
while i < 10 and i < len(memory):
globals()[cmds.get(cmd, "unknown")]()
'''
if cmd == 1:
a = memory[addr + 1] + memory[addr + 2]
addr += 2
print(a)
elif cmd == 2:
a = memory[addr + 1] - memory[addr + 2]
addr += 2
elif cmd == 3:
print("IN CMD == 3")
print(a)
addr += 1
else:
print("Unknown command")
addr += 1
'''
print("addr::" + str(addr))
i += 1
#print(i)
#print(globals())