Структура машинной команды
Объекты, над которыми нужно что-то делать (эти элементы называются операндами); Префикс разрядности адреса уточняет разрядность адреса (32- или 16-разрядный); Поле mod определяет количество байт, занимаемых в команде адресом операнда; Обязательный элемент, описывающий операцию, выполняемую командой. Префикс повторения используется с цепочечными командами. Максимальная длина машинной команды — 15… Читать ещё >
Структура машинной команды (реферат, курсовая, диплом, контрольная)
Машинная команда представляет собой закодированное по определенным правилам указание микропроцессору на выполнение некоторой операции или действия. Каждая команда содержит элементы, определяющие:
- 1) что делать?
- 2) объекты, над которыми нужно что-то делать (эти элементы называются операндами);
- 3) как делать?
Максимальная длина машинной команды — 15 байт.
1. Префиксы.
Необязательные элементы машинной команды, каждый из которых состоит из 1 байта или может отсутствовать. В памяти префиксы предшествуют команде. Назначение префиксов — модифицировать операцию, выполняемую командой. Прикладная программа может использовать следующие типы префиксов:
- 1) префикс замены сегмента;
- 2) префикс разрядности адреса уточняет разрядность адреса (32- или 16-разрядный);
- 3) префикс разрядности операнда аналогичен префиксу разрядности адреса, но указывает на разрядность операндов (32- или 16-разрядные), с которыми работает команда;
- 4) префикс повторения используется с цепочечными командами.
- 2. Код операции.
Обязательный элемент, описывающий операцию, выполняемую командой.
3. Байт режима адресации modr/m.
Значения этого байта определяет используемую форму адреса операндов. Операнды могут находиться в памяти в одном или двух регистрах. Если операнд находится в памяти, то байт modr/m определяет компоненты (смещение, базовый и индексный регистры),.
используемые для вычисления его эффективного адреса. Байт modr/m состоит из трех полей:
- 1) поле mod определяет количество байт, занимаемых в команде адресом операнда;
- 2) поле reg/коп определяет либо регистр, находящийся в команде на месте первого операнда, либо возможное расширение кода операции;
- 3) поле r/m используется совместно с полем mod и определяет либо регистр, находящийся в команде на месте первого операнда (если mod = 11), либо используемые для вычисления эффективного адреса (совместно с полем смещение в команде) базовые и индексные регистры.
- 4. Байт масштаб — индекс — база (байт sib). Используется для расширения возможностей адресации операндов. Байт sib состоит из трех полей:
- 1) поля масштаба ss. В этом поле размещается масштабный множитель для индексного компонента index, занимающего следующие 3 бита байта sib;
- 2) поля index. Используется для хранения номера индексного регистра, который применяется для вычисления эффективного адреса операнда;
- 3) поля base. Используется для хранения номера базового регистра, который также применяется для вычисления эффективного адреса операнда.
- 5. Поле смещения в команде.
- 8-, 16- или 32-разрядное целое число со знаком, представляющее собой, полностью или частично (с учетом вышеприведенных рассуждений), значение эффективного адреса операнда.
- 6. Поле непосредственного операнда. Необязательное поле, представляющее собой 8-,
- 16- или 32-разрядный непосредственный операнд. Наличие этого поля, конечно, отражается на значении байта modr/m.