значение метки набора сборки для отрицательного значения [дубликат]

Для достижения этого поведения вы должны использовать 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

1
задан Sam Tyson 16 June 2015 в 18:39
поделиться

1 ответ

Вы получаете эту ошибку, потому что ваши переменные отличаются от кода времени выполнения. Как правило, лучше использовать ваши переменные в конце вашего кода после команды 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 был, таким образом, является ошибкой. Не позволяя симулятору запускать ваши переменные, вы не получите эту ошибку.

1
ответ дан Chris M 20 August 2018 в 15:42
поделиться
  • 1
    Хорошо, я изменил его, и теперь все работает гладко. Большое спасибо!! – Sadis6 15 June 2015 в 16:31
  • 2
    Рад, что смог помочь. Не забывайте отмечать ответ, как только он помог. благодаря – Chris M 15 June 2015 в 21:03
Другие вопросы по тегам:

Похожие вопросы: