Инструкции по сборке (LD
, ST
, ADD
и т. Д. В случае симулятора LC-3) соответствуют двоичным инструкциям, которые загружаются и выполняются как программа. В случае LC-3 эти «коды операций» собраны в 16-битные строки 1 и 0, которые архитектура LC-3 разработана для соответствующего выполнения.
Например, сборка «ADD R4 R4 # 10» соответствует «машинному коду» LC-3:
0001100100101010
Который может быть разбит на:
0001 - ADD.
100 - 4 in binary
100 - 4 in binary
10 - indicates that we are adding a value to a register
1010 - 10 in binary
Обратите внимание, что каждый код операции имеет отдельный двоичный эквивалент, поэтому существует 2 ^ 4 = 16 возможных кодов операции.
LC-3 ловко решает эту проблему, вводя эти биты флага в определенные инструкции. Для ADD
эти два бита меняются в зависимости от того, что мы добавляем. Например, если мы добавляем два регистра (т. Е. «ADD R4 R4 R7» в отличие от регистра и значения), биты будут установлены в 01
вместо 10
.
Этот машинный код инструктирует LC-3 добавить десятичное число 10 к значению в регистре 4 и сохранить результат в регистре 4.