Читаем Искусство схемотехники. Том 3 (Изд.4-е) полностью

Несколько пояснений: в первых двух режимах не адресуется память; адресуются регистры или непосредственные константы (т. е. константы, включенные в поток команд; они могут быть только источниками, но никогда не приемниками). Все остальные режимы служат для адресации памяти. Абсолютная адресация удобна для обращения к портам ввода- вывода или к отдельным ячейкам памяти.

Косвенная (особенно с постинкрементом или предекрементом) хороша для работы с массивами или стеком; кроме того, если адрес уже находится в адресном регистре, такая адресация быстрее абсолютной, так как при выполнении команды адрес (абсолютный) не требуется извлекать из памяти. PC-относительные режимы адресации особенно удобны при написании «позиционно-независимых» программ, поскольку все адреса определяются относительно самих программных строк; заметьте, что 8- и 16-разрядные смещения представляют собой знаковые целочисленные дополнения до 2, позволяя описывать ячейки, отстоящие от точки отсчета на ±127 или ±32767 байт соответственно. Обратите еще внимание на то, что непосредственные или РС-относительные операнды нельзя модифицировать (они «неизменяемы»).



11.03. Представление команд на машинном языке

Как уже упоминалось выше, язык ассемблера, использованный нами в примерах, не является «объектным кодом», фактически выполняемым микропроцессором. Скорее это мнемоническое представление, удобное для написания программ. Последовательность команд языка ассемблера, составляющая программу, должна быть преобразована в последовательность двоичных байт, выполняемых процессором. Как и в случае МП 8086, каждая команда языка ассемблера МП 68000 преобразуется (ассемблируется) в несколько байт машинного кода. Код операции (коп) всегда занимает 2 байт, но в тех случаях, когда требуется определить режимы адресации, к нему могут добавляться дополнительные слова (двухбайтовые). В зависимости от вида операции и режимов адресации команда может иметь длину от 2 до 10 байт. Например, команда

ADD.W (A1) +,D3

ассемблируется в код минимальной длины (2 байта), именно (D6 59)н, причем и номера регистров, и режимы адресации указываются (вместе с кодом операции) в самой 2-байтовой команде. С другой стороны, команда MOVE.W $FFFF,$A0000 ассемблируется в 8-байтовый код, а именно (33 FC FF FF 00 0А 00 00)н

, причем в первых двух байтах указываются операция и режимы адресации, в следующих двух байтах — непосредственная константа, а в последних четырех байтах — абсолютный адрес (длинный) приемника.

ЦП, естественно, по самой своей конструкции умеет интерпретировать этот результирующий машинный код. Рассмотрение структуры машинного кода конкретной команды может помочь вам в понимании логики работы ЦП. На рис. 11.2 развернута структура самой употребительной команды МП 68000 MOVE.



Рис. 11.2.

Структура команды MOVE.


Пройдемся по ней. Два лидирующих нуля идентифицируют (почти) команду, как операцию MOVE; следующие два бита определяют размер операндов, как это показано на рисунке. Любопытно отметить, что поскольку комбинация бит 00 не используется для описания размера, код 0000ххх…хх не входит число кодов команды MOVE (однако не думайте, что этот код пропадает — фирма Motorola использует его для других команд). Следующие 6 бит описывают режим адресации и регистр (если таковой используется) операнда-приемника, а последние 6 бит заключают ту же информацию об операнде-источнике; на рис. 11.2 показано, как кодируется эта информация. Заметьте, что последние 5 режимов адресации, не использующие регистр, разделяют между собой оставшийся номер режима (111) и различаются «фальшивыми» номерами регистра. Если режим адресации какого-либо из операндов требует дополнительной информации (непосредственные данные, абсолютные адреса, смещения), к коду команды добавляются дополнительные байты, как это показано на рис. 11.2.

Любопытно заметить, что МП 68000 расходует 1/4 х 3/4 = 19 % всех возможных кодов команд на команду MOVE, предоставляя все сочетания режимов адресации и для источника, и для приемника. Фирма Motorola не могла быть столь же расточительной для остальных 50 с лишком команд табл. 11.1, и возможности их адресации пришлось урезать.

К примеру, если использовать фирменное обозначение <еа> для полного набора команд, то можно образовать команды ADD

< еа >, Dn или

ADD Dn, <еа>

но не все варианты полного сочетания

ADD <еа>, <еа>

В реальной жизни вы всегда пользуетесь ассемблером (который работает на компьютере или микропроцессорной «системе разработки») для выполнения черной работы по конструированию этих команд. Однако, чтобы убедиться, что мы действительно поняли суть дела, попробуем свои силы в «ручном ассемблировании». Закодируем команду

MOVE.W #$3FFF,(A1) +

Код размера равен 11 (слово); код режима приемника равен 011, а регистра — 001; для приемника код режима равен 111, а «регистра» — 100. Таким образом, код команды составляет

00 11 001 011 111 100, или 32FCH

Перейти на страницу:

Похожие книги

Десять книг об архитектуре
Десять книг об архитектуре

Римский архитектор и инженер Витрувий жил и работал во второй половине I в. до н. э. в годы правления Юлия Цезаря и императора Октавиана Августа. Его трактат представляет собой целую энциклопедию технических наук своего времени, сочетая в себе жанры практического руководства и обобщающего практического труда. Более двух тысяч лет этот знаменитый труд переписывался, переводился, комментировался, являясь фундаментом для разработки теории архитектуры во многих странах мира.В настоящем издание внесены исправления и уточнения, подготовленные выдающимся русским ученым, историком науки В. П. Зубовым, предоставленные его дочерью М. В. Зубовой.Книга адресована архитекторам, историкам науки, культуры и искусства, всем интересующимся классическим наследием.

Витрувий Поллион Марк , Марк Витрувий

Скульптура и архитектура / Античная литература / Техника / Архитектура / Древние книги
Техобслуживание и мелкий ремонт автомобиля своими руками.
Техобслуживание и мелкий ремонт автомобиля своими руками.

Многим начинающим автомобилистам явно не хватает умений и навыков для того, чтобы правильно ухаживать за своей машиной. Книга расскажет, из чего состоит современный автомобиль, как его правильно эксплуатировать, почему важно своевременно делать техническое обслуживание, как не переплачивать на СТО за то, что вполне можно сделать самостоятельно. Книга научит, как самому поменять свечу и колесо, устранить нагар в цилиндрах, заменить перегоревшие лампочки, заделать проколы в колесах, устранить ржавчину на кузове, а также выполнить ряд других работ по техническому обслуживанию и мелкому ремонту автомобиля. Все приведенные примеры и рекомендации взяты «из жизни», основаны на реальных фактах и имеют практическое подтверждение.Для широкого круга читателей.

А. А. Гладкий , Алексей Анатольевич Гладкий

Автомобили и ПДД / Хобби и ремесла / Техника / Дом и досуг / Словари и Энциклопедии