Gauri Pss2
Gauri Pss2
Roll_NO.-13162
Batch-A3
Group A Assignments-1 PASS-II
--------------------------------------------------Pass-
II_Program-----------------------------------------------------
import os
def read_intermediate_code():
inter_code = []
with open("inter_code.txt", "r") as f:
for line in f:
inter_code.append(line.strip())
return inter_code
def read_literals():
literals = {}
with open("literals.txt", "r") as f:
for line in f:
parts = line.strip().split("\t")
literals[parts[0]] = parts[1]
return literals
def read_symtab():
symtab = {}
with open("SymTab.txt", "r") as f:
for line in f:
parts = line.strip().split("\t")
symtab[parts[0]] = parts[1]
return symtab
def read_pooltab():
pooltab = []
with open("PoolTab.txt", "r") as f:
for line in f:
pooltab.append(int(line.strip()))
return pooltab
return machine_code
def write_machine_code(machine_code):
with open("machine_code.txt", "w") as f:
for line in machine_code:
f.write(f"{line}\n")
def pass2_assemble():
inter_code = read_intermediate_code()
literals = read_literals()
symtab = read_symtab()
pooltab = read_pooltab()
write_machine_code(machine_code)
if __name__ == "__main__":
pass2_assemble()
---------------------------------------------------------
inter_code.txt------------------------------------------------
(AD,01) (C,200)
(DL,02) (C,10)
(IS,04) (RG,1)(S,1)
(IS,05) (RG,2)(L,1)
(IS,01) (RG,1)(L,2)
(IS,02) (RG,2)(L,3)
(DL,02) (C,20)
(AD,03) (C,300)
(AD,05) (DL,02)(C,1)
(AD,05) (DL,02)(C,2)
(AD,05) (DL,02)(C,1)
(IS,04) (RG,1)(S,2)
(IS,04) (RG,3)(S,3)
(IS,01) (RG,2)(L,4)
(DL,01) (C,5)
(DL,02) (C,10)
(AD,02)
------------------------------------------------------
literas.txt-----------------------------------------------------
='1' 301
='2' 302
='1' 303
='1' 313
-----------------------------------------------------
machine_code.txt-------------------------------------------------
03 01 202 ; MOVER AREG, B
04 02 001 ; MOVEM BREG, =1
05 01 002 ; ADD AREG, =2
06 02 001 ; SUB BREG, =1
03 01 300 ; MOVER AREG, NUM
03 03 305 ; MOVER CREG, LOOP
05 02 001 ; ADD BREG, =1
---------------------------------------------------
PoolTab.txt--------------------------------------------------------
0
3
---------------------------------------------------
SymTab.txt-----------------------------------------------------------
A 200
B 205
NUM 306
LOOP 311
---------------------------------------------------
input.txt-----------------------------------------------------------
START 200
A DC 10
MOVER AREG, B
MOVEM BREG, ='1'
ADD AREG, ='2'
SUB BREG, ='1'
B DC 20
ORIGIN 300
LTORG
MOVER AREG, NUM
MOVER CREG, LOOP
ADD BREG, ='1'
NUM DS 5
LOOP DC 10
LTORG
END
-----------------------------------------------------------------------------------
------------------------------------