2015-04-03 5 views
0

Итак, сейчас я пытаюсь понять, как сгенерирован объектный код, но эти две строки действительно путают меня, кто-нибудь хочет объяснить это мне?путаница при генерации кода объекта на выходе сборщиков SIC

RSUB is 4C0000, I understand RSUB is 4C Mnemonic, but where did 0000 came from? 
EOF BYTE C'EOF' Object code is 454F46, how did they get that? 

INPUT BYTE X'F1'  F1 
how did generate F1 in the object code? 

STCH BUFFER, X  549039 

BUFFER is 1039, and STCH in mnemonic is 54, but shouldn't it be 541039? 


also after a few lines, 

LDCH BUFFER, X  509039? 

ответ

4

На все эти вопросы следует ответить в инструкции по установке вашей архитектуры и руководству вашего ассемблера.

RSUB - 4C0000, я понимаю RSUB - 4C Мнемонический, но где же 0000 ?

SIC, похоже, использует 24-битные слова и кодировку с фиксированной длиной. Поскольку эта инструкция, по-видимому, не принимает операндов, следовательно, нулей. Возможно, CPU игнорирует адресное поле, поэтому вы можете использовать все, что захотите, или, может быть, оно должно быть равным нулю. Не мог найти определенного ответа на этот вопрос.

EOF BYTE C'EOF 'Код объекта 454F46, как они это получили?

45, 4F и 46 только ASCII-коды для E, O и F, соответственно. Предположительно оператор C вашего ассемблера предписывает ему испускать код ascii следующих символов.

INPUT BYTE X'F1 'F1 как сгенерировал F1 в объектном коде?

Предполагается, что оператор вашего ассемблера X испускает байт с заданным шестнадцатеричным значением.

STCH BUFFER, X 549039 BUFFER 1039 и STCH в мнемонические 54, но она не должна быть 541039?

Адрес - только низкие 15 бит. Бит № 15 используется как флаг, указывающий режим индексированной адресации, поэтому 1039 становится 9039.

+0

Большое вам спасибо. не могли бы вы объяснить бит более подробно STCH BUFFER, все еще немного смущенный. как они получили 549039? что вы имеете в виду, бит 15, вы можете показать мне процесс объектного кода (как это beomce 549039? –

+0

Хранить низкие 15 бит адреса, то есть '1039', а затем установить следующий бит в 1 (это значение бит' 8000 '), чтобы указать режим индексированных адресов, поэтому вы получите' 9039'. – Jester

+0

извините, все еще запутано, почему 1 равно 8000? это потому, что двоичное значение 2 для третьей мощности? и вы имеете в виду низкие 15 бит адреса? последнее значение 4, как 1039? –