<<
>>

Формат машинных команд IA-32

Машинная команда представляет собой закодированное по определенным прави- лам указание процессору на выполнение некоторой операции. Правила кодирова- ния команд называются форматом команд.
Команды процессоров архитектуры IA-32 считаются сложными. Максимальная длина машинной команды IA-32 со- ставляет 15 байт. Реальная команда может содержать гораздо меньшее количество полей, вплоть до одного — только код операции. Приведенный на рис. 3.1 формат машинной команды является наиболее полным. Как на уровне формата машинной команды соответствуют между собой машин- ные команды и команды ассемблера? Для примера рассмотрим типичную коман- ду языка ассемблера: шоv ebx, eax Команда MOV производит копирование содержимого регистра EAX в регистр ЕВХ. Соответствующая машинная команда будет выглядеть так: 8В D8 Значение 8В — код операции. Еще один пример команды MOV: mоv ecx, 128 Данная команда инициализирует содержимое регистра ЕСХ десятичным значе- нием 128. Соответствующая машинная команда выглядит так: В9 00000080 Значение поля с кодом операции — В9.
Из примеров видно, что прямого соот- ветствия между структурой команды ассемблера и соответствующей машинной командой нет. Несмотря на то, что команда ассемблера одна и та же (MOV), коды машинных команд — разные (8В и В9). Большинство команд ассемблера имеют несколько возможных вариантов сочетания операндов. Как показано в приве- денных примерах, несмотря на одинаковые названия команд ассемблера, для
Рис. 3,1. Формат машинной команды

каждого возможного сочетания операндов имеется своя машинная команда, со сво- им значением поля кода операции (рис. 3.1). Это говорит о том, что машинная ко- манда всегда однозначна по отношению к производимым ею действиям на уровне аппаратуры.

Несколько упрощая реальность, можно утверждать, что значение в поле кода операции является номером микропрограммы в блоке микропрограмм- ного управления для каждой конкретной команды ассемблера с каждым конкрет- ным вариантом сочетания операндов. Логически любая команда языка ассемблера содержит несколько элементов. ® Элемент, описывающий, что делать, называется кодом операции (КОП). Зна- чение в поле кода операции некоторым образом определяет в блоке микропрог- раммного управления подпрограмму, реализующую действия для данной ко- манды. в Элементы, описывающие объекты, с которыми нужно что-то делать, являют- ся операндами. Операнды в команде могут и не задаваться, а подразумеваться по умолчанию. и Элементы, описывающие, как делать, являются типами операндов и обычно задаются неявно. Они используются транслятором ассемблера при формиро- вании машинной команды для определения значения поля кода операции. Эти же элементы имеет и машинная команда, но в закодированном виде. Пере- вод команд ассемблера в соответствующие машинные команды осуществляет спе- циальная программа — ассемблер, которую можно также назвать транслятором (компилятором) ассемблера. : Опишем назначения полей машинной команды (рис. 3.1).
<< | >>
Источник: В. И. Юров. Assembler. Учебник для вузов. 2-е изд. 2003

Еще по теме Формат машинных команд IA-32:

  1. Жанры и форматы
  2. ЗАБЫТЫЕ ФОРМАТЫ
  3. Определение команды.
  4. § 4.5. Деятельность команд в организации
  5. Признаки команды.
  6. Пример настройки и реабилитации в футбольной команде
  7. Работа с другими командами
  8. Четыре шага по созданию эффективной команды
  9. СИСТЕМА «ЧЕЛОВЕК - МАШИНА»: НАДЕЖНОСТЬ
  10. ШЕСТЬ СТУПЕНЕЙ НА ПУТИ СОЗДАНИЯ КОМАНДЫ.
  11. Кто становится лидером команды