Изменить значение индекса в функции enumerate () - PullRequest
0 голосов
/ 28 марта 2020

Я пишу небольшой интерпретатор ассемблера, который имитирует, что вымышленный процессор сделает для выполнения этого кода.

Итак, у меня есть память 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)

...