Мы только что прочитали одну цифровую цифру с клавиатуры с помощью команды GETC. Преобразуйте это значение в двоичное и поместите его в R4

#lc3

#lc3

Вопрос:

Мне нужно написать это на языке ассемблера LC-3:

Мы только что прочитали одну цифровую цифру с клавиатуры с помощью команды GETC. Преобразуйте это значение в двоичное и поместите его в R4.

Ответ №1:

Вот пример, адаптированный из лабораторного руководства, написанного Джорджем М. Георгиу и Брайаном Стрейдером.

3.2.3 Как прочитать входное значение

Команда assembly GETC , которая является другим названием TRAP x20 , считывает один символ с клавиатуры и помещает его значение ASCII в регистр R0. 8 наиболее значимых битов R0 очищаются. Эхо-сигнала прочитанного символа нет. Например, можно использовать следующий код для чтения одного числового символа от 0 до 9 и поместить его значение в регистр R3:

 GETC               ; Place ASCII value of input character into R0
ADD R3, R0, x0     ; Copy R0 into R3
ADD R3, R3, #−16   ; Subtract 48, the ASCII value of 0
ADD R3, R3, #−16
ADD R3, R3, #−16   ; R3 now contains the actual value
  

Обратите внимание, что для вычитания 48 необходимо было использовать три инструкции, поскольку максимально возможное значение непосредственного операнда ADD равно 5 битам в формате дополнения two . Таким образом, -16 — это максимум, который мы можем вычесть с помощью немедленной версии ADD инструкции. Например, если нажатой клавишей было «5», ее значение ASCII 53 будет помещено в R0. Вычитая 48 из 53, значение 5 получается, как и ожидалось, и помещается в регистр R3.

Исходный код.

Вам нужно будет адаптировать это, чтобы поместить результат в R4.