Я пишу небольшой интерпретатор ассемблера, который имитирует, что вымышленный процессор сделает для выполнения этого кода.
Итак, у меня есть память M = [0] * 256
и аккумулятор A = [0] * 1
Для функции ADD: добавить значение памяти в аккумулятор
def add_A(lst, mem, value): # lst = A
res = mem[value] ; x = lst[0]
add = int(res) + int(x)
lst[0] = add
return lst
Для Функция IN: Для записи в память
def in_A(mem, pos):
content = input('?> ')
mem[pos] = content
И основная функция:
def execute(mem):
for pc, elemt in enumerate(mem) :
if elemt != 0 :
value = int(elemt[1])
opc = elemt[0]
print(opc, value)
if opc == 'IN' :
in_A(mem, value)
elif opc == 'ADD' :
add_A(a, mem, value)
Я хотел бы добавить инструкцию JUMP, которая изменяет значение P C и снова запускает все инструкции из этого нового значения (P C)