#assembly #lc3
#сборка #lc3
Вопрос:
Для одного из моих классов мне нужно написать программу LC-3 в машинном коде, и я, похоже, не могу найти машинные коды для команд, для которых есть точка:
.ORIG
.END
.BLKW
и т. д
Кто-нибудь знает, что это такое? Я выполнил все команды, например: AND R2, R2, #0
—> 0101 010 010 1 00000
Однако я не могу найти, какие первые четыре бита для команд .ORIG
, .END
, .BLKW
находятся где-либо в Сети.
Ответ №1:
Я не знаком с вашим конкретным диалектом, но в большинстве языков ассемблера ключевые слова, начинающиеся с a .
, являются не мнемоникой инструкций, а директивами ассемблера. В вашем случае это выглядит так, как будто, возможно .ORIG
, означает начало программы и .END
конец. .BLKW
похоже на какую-то операцию заполнения памяти.
Редактировать: я выполнил поиск в Google и получил эту презентацию. В нем говорится, что .ORIG
описывает, куда поместить следующий блок в памяти. Например .ORIG 0x3000
, будет установлена следующая инструкция по адресу 0x3000
. .END
, как я упоминал выше, описывает конец программы. .BLKW
означает «блочное слово» и используется, например, для резервирования места для использования в качестве массива.
Во всех случаях для этих директив не существует каких-либо конкретных машинных кодов. Для .ORIG
этого просто запишите следующие коды операций или данные в указанном месте. .END
вообще не отображается в машинном коде и .BLKW
означает, что вы можете просто скопировать указанные байты непосредственно из программы сборки в машинный код.
Комментарии:
1. Это то, что они означают, да. На других языках ассемблера эти вещи не имеют интерпретации машинного кода?
2. @user1017593, нет, они этого не делают. Они не являются инструкциями или данными, так зачем им это? Они просто указывают ассемблеру, что делать с содержимым программы.
3. Спасибо за ответ. Я новичок во всем этом, поэтому меня это смущало.
4. Когда я пытаюсь преобразовать его сейчас, он выдает ошибки для всех этих кодов. Строка 10: Неожиданный символ ‘.’ для . ОРИГИНАЛЬНЫЙ x3000
5. Что вы имеете в виду «когда я пытаюсь его преобразовать»? Разве вы не делаете это вручную?