На языке ассемблера LC-3, как мне преобразовать эти команды в машинный код? - PullRequest
1 голос
/ 29 октября 2011

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

.ORIG
.END
.BLKW

и т.д.

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

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

1 Ответ

3 голосов
/ 29 октября 2011

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

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

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

...