Как на языке ассемблера LC-3 преобразовать эти команды в машинный код?

Для одного из моих занятий мне нужно написать программу LC-3 в машинном коде, и я не могу найти машинные коды для команд, для которых есть точка:

.ORIG
.END
.BLKW

так далее

Кто-нибудь знает, что они собой представляют? У меня все команды выполнены, например: AND R2, R2, #0 --> 0101 010 010 1 00000

Однако я не могу найти первые четыре бита для команд .ORIG, .END, .BLKW в сети.


person user1017593    schedule 28.10.2011    source источник


Ответы (1)


Я не знаком с вашим конкретным диалектом, но в большинстве языков ассемблера ключевые слова, начинающиеся с ., являются не мнемониками инструкций, а директивами ассемблера. В вашем случае похоже, что .ORIG означает начало программы, а .END конец. .BLKW похоже на какую-то операцию заполнения памяти.

Редактировать: я выполнил поиск в Google и нашел эту презентацию . В нем говорится, что .ORIG описывает, где разместить в памяти следующий блок. Например, .ORIG 0x3000 установит следующую инструкцию по адресу 0x3000. .END, как я уже упоминал выше, описывает конец программы. .BLKW означает «блочное слово» и используется, например, для резервирования места для использования в качестве массива.

Во всех случаях для этих директив нет конкретных машинных кодов. Для .ORIG просто запишите следующие коды операций или данные в указанное место. .END вообще не будет отображаться в машинном коде, а .BLKW означает, что вы можете просто скопировать указанные байты непосредственно из ассемблерной программы в машинный код.

person Carl Norum    schedule 28.10.2011
comment
Вот что они имеют в виду, да. В других языках ассемблера эти вещи не имеют интерпретации машинного кода? - person user1017593; 29.10.2011
comment
@ user1017593, нет, не знают. Это не инструкции и не данные, так зачем им это? Они просто указывают ассемблеру, что делать с содержимым программы. - person Carl Norum; 29.10.2011
comment
Спасибо за ответ. Я новичок во всем этом, поэтому это меня смутило. - person user1017593; 29.10.2011
comment
Когда я пытаюсь преобразовать его сейчас, он выдает ошибки для всех этих кодов. Строка 10: Неожиданный символ '.' для .ORIG x3000 - person user1017593; 29.10.2011
comment
Что вы имеете в виду, когда я пытаюсь преобразовать его? Вы не делаете это вручную? - person Carl Norum; 29.10.2011
comment
Вы можете взглянуть на это? stackoverflow.com/questions/29708532/ - person committedandroider; 18.04.2015