Конспект лекций


Скачать 1.37 Mb.
Название Конспект лекций
страница 4/15
Тип Конспект
rykovodstvo.ru > Руководство эксплуатация > Конспект
1   2   3   4   5   6   7   8   9   ...   15

Структура машинной команды


Машинная команда представляет собой закодированное по определенным правилам указание микропроцессору на выполнение некоторой операции или действия. Приведенный на рис. 1 формат машинной команды является самым общим. Максимальная длина машинной команды - 15 байт. Реальная команда может содержать гораздо меньшее количество полей, вплоть до одного - только КОП. 



Рис. 1. Формат машинной команды

Опишем назначения полей машинной команды.

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

    • Префикс замены сегмента. В явной форме указывает, какой сегментный регистр используется в данной команде для адресации стека или данных. Префикс отменяет выбор сегментного регистра по умолчанию. Префиксы замены сегмента имеют следующие значения:

      • 2eh - замена сегмента cs;

      • 36h - замена сегмента ss;

      • 3eh - замена сегмента ds;

      • 26h - замена сегмента es;

      • 64h - замена сегмента fs;

      • 65h - замена сегмента gs.

    • Префикс разрядности адреса уточняет разрядность адреса (32 или 16-разрядный).
      Каждой команде, в которой используется адресный операнд, ставится в соответствие разрядность адреса этого операнда. Этот адрес может иметь разрядность 16 или 32 бит. Если разрядность адреса для данной команды 16 бит, это означает, что команда содержит 16-разрядное смещение (см. рис. 1), оно соответствует 16-разрядному смещению адресного операнда относительно начала некоторого сегмента. В контексте рис. 2 это смещение называется эффективный адрес. Если разрядность адреса 32 бит, это означает, что команда содержит 32-разрядное смещение (см. рис. 1 ), оно соответствует 32-разрядному смещению адресного операнда относительно начала сегмента и по его значению формируется 32-битное смещение в сегменте. С помощью префикса разрядности адреса можно изменить действующее по умолчанию значение разрядности адреса. Это изменение будет касаться только той команды, которой предшествует префикс. 



Рис. 2. Механизм формирования физического адреса в реальном режиме

    • Префикс разрядности операнда аналогичен префиксу разрядности адреса, но указывает на разрядность операндов (32 или 16-разрядные), с которыми работает команда. В соответствии с какими правилами устанавливаются значения атрибутов разрядности адреса и операндов по умолчанию?
      В реальном режиме и режиме виртуального i8086 значения этих атрибутов - 16 бит.
      В защищенном режиме значения атрибутов зависят от состояния бита D в дескрипторах исполняемых сегментов (см. урок 16). Если D = 0, то значения атрибутов, действующие по умолчанию, равны 16 бит; если D = 1, то 32 бит.
      Значения префиксов разрядности операнда 66h и разрядности адреса 67h. Вы можете с помощью префикса разрядности адреса в реальном режиме использовать 32-разрядную адресацию, но при этом необходимо помнить об ограниченности размера сегмента величиной 64 Кбайт. Аналогично префиксу разрядности адреса вы можете использовать префикс разрядности операнда в реальном режиме для работы с 32-разрядными операндами (к примеру, в арифметических командах).

    • Префикс повторения используется с цепочечными командами (командами обработки строк). Этот префикс "зацикливает" команду для обработки всех элементов цепочки. Система команд поддерживает два типа префиксов:

      • безусловные (rep - 0f3h), заставляющие повторяться цепочечную команду некоторое количество раз;

      • условные (repe/repz - 0f3h, repne/repnz - 0f2h), которые при зацикливании проверяют некоторые флаги, и в результате проверки возможен досрочный выход из цикла.

  • Код операции. Обязательный элемент, описывающий операцию, выполняемую командой. Многим командам соответствует несколько кодов операций, каждый из которых определяет нюансы выполнения операции.

Последующие поля машинной команды определяют местоположение операндов, участвующих в операции, и особенности их использования. Рассмотрение этих полей связано со способами задания операндов в машинной команде и потому будет выполнено позже.

  • Байт режима адресации modr/m. Значения этого байта определяет используемую форму адреса операндов. Операнды могут находиться в памяти в одном или двух регистрах. Если операнд находится в памяти, то байт modr/m определяет компоненты (смещение, базовый и индексный регистры), используемые для вычисления его эффективного адреса (см. рис. 2). В защищенном режиме для определения местоположения операнда в памяти может дополнительно использоваться байт sib (Scale-Index-Base - масштаб-индекс-база). Байт modr/m состоит из трех полей (см. рис. 1):

    • поле mod определяет количество байт, занимаемых в команде адресом операнда (см. рис. 1, поле смещение в команде).
      Поле mod используется совместно с полем r/m, которое указывает способ модификации адреса операнда смещение в команде.
      К примеру, если mod = 00, это означает, что поле смещение в команде отсутствует, и адрес операнда определяется содержимым базового и (или) индексного регистра. Какие именно регистры будут использоваться для вычисления эффективного адреса, определяется значением этого байта.
      Если mod = 01, это означает, что поле смещение в команде присутствует, занимает один байт и модифицируется содержимым базового и (или) индексного регистра.
      Если mod = 10, это означает, что поле смещение в команде присутствует, занимает два или четыре байта (в зависимости от действующего по умолчанию или определяемого префиксом размера адреса) и модифицируется содержимым базового и (или) индексного регистра.
      Если mod = 11, это означает, что операндов в памяти нет: они находятся в регистрах. Это же значение байта mod используется в случае, когда в команде применяется непосредственный операнд;

    • поле reg/коп определяет либо регистр, находящийся в команде на месте первого операнда, либо возможное расширение кода операции;

    • поле r/m используется совместно с полем mod и определяет либо регистр, находящийся в команде на месте первого операнда (если mod = 11), либо используемые для вычисления эффективного адреса (совместно с полем смещение в команде) базовые и индексные регистры.

  • Байт масштаб-индекс-база (байт sib) используется для расширения возможностей адресации операндов.
    На наличие байта sib в машинной команде указывает сочетание одного из значений 01 или 10 поля mod и значения поля r/m= 100. Байт sib состоит из трех полей:

    • поля масштаба ss. В этом поле размещается масштабный множитель для индексного компонента index, занимающего следующие три бита байта sib.
      В поле ss может содержаться одно из следующих значений: 1, 2, 4, 8.
      При вычислении эффективного адреса на это значение будет умножаться содержимое индексного регистра. Более подробно с практической точки зрения эта расширенная возможность индексации рассматривается на уроке 12 при обсуждении вопросов работы с массивами;

    • поля index - используется для хранения номера индексного регистра, который применяется для вычисления эффективного адреса операнда;

    • поля base - используется для хранения номера базового регистра, который также применяется для вычисления эффективного адреса операнда. Напомню, что в качестве базового и индексного регистров могут использоваться практически все регистры общего назначения.

  • Поле смещения в команде. 8, 16 или 32-разрядное целое число со знаком, представляющее собой, полностью или частично (с учетом вышеприведенных рассуждений), значение эффективного адреса операнда.

  • Поле непосредственного операнда. Необязательное поле, представляющее собой 8, 16 или 32-разрядный непосредственный операнд. Наличие этого поля, конечно, отражается на значении байта modr/m.
1   2   3   4   5   6   7   8   9   ...   15

Похожие:

Конспект лекций icon Конспект лекций
Ш 39 Метрология, стандартизация, сертификация: Конспект лекций / О. А. Шейфель; Кемеровский технологический институт пищевой промышленности....
Конспект лекций icon Конспект лекций для студентов всех форм обучения специальности 080110...
Налоги и налогообложение: Конспект лекций / Составитель Н. А. Леончик. – Кемерово, 2006. – 80 с
Конспект лекций icon Технические средства автоматизации конспект лекций
Конспект лекций предназначен для студентов дневной, вечерней, заочной и дистанционной форм обучения по специальности 220301 «Автоматизация...
Конспект лекций icon Конспект лекций Владимир 2010 Министерство образования Российской...
Автоматизированные системы бухгалтерского и управленческого учета. Часть 1: Конспект лекций / Владим гос ун-т; Сост.: Д. Н. Васильев...
Конспект лекций icon Конспект лекций лаконично раскрывает содержание и структуру учебной...
Безопасность жизнедеятельности : конспект лекций для студентов очной и заочной форм обучения / сост. В. М. Домашко; Южный федеральный...
Конспект лекций icon Конспект лекций по дисциплине для специальности 080101. 65 «Экономическая безопасность»
Информационные системы в экономике: конспект лекций по дисциплине для обучающихся по специальности 080101. 65 «Экономическая безопасность»...
Конспект лекций icon Конспект лекций по дисциплине «Научные основы производства продуктов питания»
Конспект лекций по дисциплине «Научные основы производства продуктов питания» для студентов кафедры «Технология и организация общественного...
Конспект лекций icon Конспект лекций по дисциплине вгипу, 2009 Конспект лекций по дисциплине...
Учебное пособие предназначено для студентов различных специальностей, изучающих дисциплину “Автоматизированные системы управления...
Конспект лекций icon Кафедра фармации Органические лекарственные препараты. Ароматические...
Органические лекарственные препараты. Ароматические соединения. Краткий конспект лекций – Нижний Новгород: Изд-во Нижегородской государственной...
Конспект лекций icon Конспект-лекций основы социальной работы 44. 05. 01 «Педагогика и...
Мельников С. В. Основы социальной работы: Конспект-лекций по специальности 44. 05. 01 «Педагогика и психология девиантного поведения»...
Конспект лекций icon Конспект лекций по курсу «Делопроизводство» составлен на основе базовой...
Конспект лекций по курсу «Делопроизводство» составлен на основе базовой программы «Делопроизводство и документационное обеспечение...
Конспект лекций icon Конспект лекций (Гилевский Ю. Х.) по высшей геодезии за 3 курс обучения...
Конспект лекций (Гилевский Ю. Х.) по высшей геодезии за 3 курс обучения в Санкт-Петербургском техникуме Геодезии и картографии. Примерно...
Конспект лекций icon Конспект лекций по учебной дисциплине защита информации
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Конспект лекций icon Конспект лекций учебной дисциплины: «Производственный менеджмент»
Тема Методы сетевого планирования и управления в подготовке производства продукта
Конспект лекций icon Конспект лекций мдк 02. 02. Электронные средства и методы геодезических измерений
ПМ. 02. Выполнение топографических съемок, графического и цифрового оформления их результатов
Конспект лекций icon Конспект лекций по дисциплине «экономика татарстана»
Принята на заседании кафедры экономико-математического моделирования Института управления, экономики и финансов

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск