forked from jsndc99/SEM6_SPCC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
AssPass2.py
48 lines (41 loc) · 1.29 KB
/
AssPass2.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
mot = {
'A': '5A',
'L': '6A',
'ST': '7A'
}
pot = ['DS', 'DC', 'START', 'USING']
insList = []
with open("ainput.txt", "r") as f:
for ins in f:
insList.append(ins.strip("\n").strip("\r"))
symtab = {}
with open("SymbolTable.txt", "r") as f:
for symbol in f:
sym = symbol.strip("\n").split(" ")
symtab[sym[0]] = sym[1]
LC = 0
with open("MachineCode.txt", "w") as f:
for ins in insList:
data = ins.split(" ")
if data[1] in pot:
if data[1] == 'DC':
num = data[2].split("'")
print(str(LC) + " " + str(num[1]))
f.write(str(LC) + " " + str(num[1]) + "\n")
LC += 4
elif data[1] == 'DS':
print(str(LC) + " " + "--")
f.write(str(LC) + " " + "--" + "\n")
LC += 4
else:
print("--")
f.write("--" + "\n")
else:
sym = data[2].split(",")
try:
print(str(LC) + " " + mot[data[1]] + " " + sym[0] + "," +symtab[sym[1]])
f.write(str(LC) + " " + mot[data[1]] + " " + sym[0] + "," +symtab[sym[1]]+ "\n")
LC += 4
except KeyError as e:
print ("--")
f.write("--"+"\n")