русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

E.2.1 Общий обзор


Дата добавления: 2015-06-12; просмотров: 436; Нарушение авторских прав


Коды всех программ являются подмножеством общего формата команд, отображенного на Рисунке 10.1. Код команд содержит один или два основных байта кода операций, может содержать описатель адреса операнда в байте "mod r/m" и "индекс масштабирования", при необходимости - смещение или поле непосредственного операнда.

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

Почти все команды, которые используют операнды, расположенные в памяти, содержат байт режима адресации, следующий за байтом (байтами) кода операции. Этот байт ("mod r/m") указывает, какой режим адресации операндов используется в данной команде. Байт "mod r/m" может содержать указание на использование еще одного адресного байта, следующего непосредственно за ним. Второй байт называется байтом "масштаба-индекса-базы" и содержит дополнительную информацию о режиме адресации.

Для некоторых режимов адресации используется смещение, следующее сразу за байтом "mod r/m" или байтом масштабированного индекса. Если смещение присутствует в коде команды, оно может иметь размер 8, 16 или 32 бита. Если команда использует непосредственный операнд, он помещается после байтов смещения. Непосредственный операнд, если он присутствует, всегда является последним полем кода команды.

На Рисунке 10.1 показаны некоторые поля, которые могут появляться в команде, например mod и r/m. Однако, не все возможные поля приведены на этом рисунке. В некоторых командах используются другие поля, иногда непосредственно внутри кода операции. В Таблице E.4 приводится полный список полей, используемых для кодирования набора команд микропроцессора i486. За Таблицей E.4 следуют таблицы, содержащие подробные сведения о каждом поле.



+----------------------------------------------------------------+

|+-------------------------------------+ |

||TTTTTTT|TTTTTTT|modTTTr/m|ssindexbase|с32|16|8|нет д32|16|8|нет|

|+-------------------------------------+ |

| 7 0 7 0 7 65 32 0 7 5 2 0 |

| +-------------+ +-------+ +---------+ +----------+ +----------+|

| код операции байт байт смещение непосредст-|

| (1 или 2 байта) "mod r/m" "s-i-b" адреса венные |

|(T представляет +-------------------+ (4,2,1 байта данные |

| биты кода опер.) регистр и или нет) (4,2,1 байта|

| описатель режима или нет) |

| адресации |

+----------------------------------------------------------------+

Рисунок 10.1. Общий формат команд

Таблица E.4 Поля кодов команд микропроцессора i486

+----------------------------------------------------------------+

| Имя поля | Описание | Число битов |

+----------+---------------------------------------+-------------|

| w | Описывает размер данных: байт или | 1 |

| | полный размер ( Полный размер - это | |

| | 16 или 32 бита ) | |

| d | Указывает направление операции | 1 |

| | обработки данных | |

| s | Указывает на необходимость | 1 |

| | распространения знака для непосредст- | |

| | венного операнда | |

| reg | Описатель регистра общего назначения | 3 |

| mod r/m | Описатель режима адресации | 2 для mod; |

| | (Эффективный адрес может быть | 3 для r/m |

| | регистром общего назначения) | |

| | | |

| ss | Коэффициент масштабирования для | 2 |

| | режима адресации с масштабированным | |

| | индексом | |

| index | Регистр общего назначения используется| 3 |

| | как индексный регистр | |

| base | Регистр общего назначения используется| 3 |

| | как базовый регистр | |

| sreg2 | Описатель сегментного регистра для | 2 |

| | CS, SS, DS, ES | |

| sreg3 | Описатель сегментного регистра для | 3 |

| | CS, SS, DS, ES, FS и GS | |

| tttn | Для условных команд, описывает | 4 |

| | утверждение условия или отрицание | |

| | условия | |

+----------------------------------------------------------------+

Примечание:

 

Таблицы E.1 - E.3 содержат форматы конкретных команд.

 

 

 



<== предыдущая лекция | следующая лекция ==>
Предположения, используемые при вычислении времени выполнения команд | E.2.2 32-разрядные расширения набора команд.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.678 сек.