Для достижения этого поведения вы должны использовать globals()
встроенный метод :
def var_of_var(k, v):
globals()[k] = v
print variable_name # NameError: name 'variable_name' is not defined
some_name = 'variable_name'
globals()[some_name] = 123
print variable_name # 123
some_name = 'variable_name2'
var_of_var(some_name, 456)
print variable_name2 # 456
Вы получаете эту ошибку, потому что ваши переменные отличаются от кода времени выполнения. Как правило, лучше использовать ваши переменные в конце вашего кода после команды HALT.
.ORIG x3000
MAIN
LD R0, VAR1
NOT R0, R0
ADD R0, R0, #1
ST R0, VAR2
HALT
VAR1 .FILL #5
VAR2 .FILL #0
.END
Причина, по которой вы получали эти ошибки, состоит в том, что, когда вы сохраняли числа в своих переменных, имитаторы считали, что они являются командами. Команда trap имеет код операции 1111, который также является отрицательным числом. Когда симулятор столкнулся с вашей переменной, он не мог понять, какой тип команды TRAP был, таким образом, является ошибкой. Не позволяя симулятору запускать ваши переменные, вы не получите эту ошибку.