Есть ли способ сохранить шестнадцатеричное значение FF в регистре в LC3 - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь сохранить шестнадцатеричное значение FF в регистре, но получаю сообщение об ошибке "немедленный 'xFF' вне диапазона"

1 Ответ

2 голосов
/ 03 октября 2019

Если константа была намного меньше (то есть в диапазоне от -16 до + 15 десятичных, то есть от x-10 до xF), вы могли бы сначала очистить регистр, а затем использовать ADD с немедленной формой. Но ваша константа слишком велика для этого. (И для этого потребуется две инструкции, в зависимости от вашей большой кодовой последовательности.)


В противном случае LC-3 использует (относительные к ПК) режимы адресации на основе памяти - немедленная загрузка отсутствует! Вам нужно будет сохранить значение xFF в памяти, присвоить ему метку и LD (загрузить) из памяти.

     LD R3, labelFF
     ...

labelFF, .fill xFF

Конечно, это предполагает, что вы хотите 16-битная константа 0x00FF. Если бы вы хотели -1 (0xFFFF), было бы больше опций, так как это небольшое отрицательное значение, и непосредственные значения расширяются знаком.

Тем не менее, LD с меткой - это правильный способ загрузки констант в регистры. на ЛК-3.

...