Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Структура машинной команды. Префикс замены сегмента в памяти

 

Машинная команда должна содержать следующую информацию:

1) код операции, который помещается в первом байте команды.

2) способ адресации и собственно адрес. В команде должно быть закодировано: содержаться ли операнды в регистрах, или это непосредственные данные, или операнд находится в памяти.

Форматы команд ЦП в языке ассемблера строится в соответствие с двоичной внутренней машинной формой представления, по которой обобщенный формат использует базовую 2х байтную структуру для построения основной части команды, имеющей вид.

    15 8 7 0
000000 d/o w mod reg/000 r/m d8 / d16 / d32 i8 / i16 / i32
Кодируется КОП и способ адр-ии Пост-байт Размер данных  

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

Буквами 0 обозначены байты КОП.

d - направление пересылки результатов

w – размер данных: 0 – байт; 1 – слово / двойное слово

mod – модификация операндов

r/m – регистр или указатель типа операнда

reg/000 – могут продолжаться биты КОП

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

Длина команды ЦП без префиксов может достичь 6 байт. Некоторые группы команд имеют дополнительные сокращенные форматы, которые обрабатываются быстрее.

Если на код операции и режим адресации выделено 2 байта, то поля mod и r/m а также бит w определяют разные режимы адресации и назначение сегментных регистров по умолчанию.

Второй байт, используемый для адресации почти всех операндов называется пост-байтом.

Mod и r/m используются совместно. Дают 32 комбинации. 8 регистров и 24 режима адресации.

Reg/000 это регистры во втором операнде и код операции.

Примеры:

1) команда mov Si,BX

расширяем побитно структуру команды

  D W Mod Reg r/m
КОП   Длина операнда Работа с регистрами   BX

2) mov DS,DX используется сегментный регистр

 

  Mod Reg r/m
Коп Работа с 2мя регистрами    

 

3) пересылка непосредственных данных в регистр

mov AH,9h

       
КОП W AH  

 

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

1) Задаваемые в виде предварительной операции

LOCK-префикс для блокировки шины данных (0F0h)

REP[xx]-префиксы повторения команд обработки строк

2) Задаваемые явно в операнда префиксами задания сегментов

DS:,CS:,SS:,ES:. Или неявно через директиву управления доступом к сегментам памяти через директиву ASSUME.

3) префикс определяется режимом трансляции и форматом операнда

префикс 32-х разрядного адреса

префикс 32-х разрядных данных

4) префикс замены сегментов в памяти. При переназначении сегм. Регистра процессор создает байт следующего вида:001RG110

Если режим адресации использует регистр BP для формирования физического адреса, по умолчанию используется содержимое сегментного регистра SS, а в других режимах адресации – содержимое регистра DS.

Если в команде используется префикс замены сегмента, то длина основной команды увеличивается на 1 байт префикса переключения сегментов, а время выполнения – на 2 цикла.

Аналогичная замена невозможна, при вычислении адреса текущей команды. В этом случае всегда используется регистр CS.

При выполнении основных манипуляций чтения и записи со стеком с использованием регистра SP всегда подключается сегментный регистр ES.

Программист может использовать сегментный префикс и переназначать сегментное назначение. При переназначении сегментного регистра процессор создает байт 001RG110.

Транслятор при построении объектного кода также встраивает сегментные префиксы в команды в случае необходимости.


<== предыдущая лекция | следующая лекция ==>
Ассемблеры. Режимы адресации | Компиляторы. Формальные языки и грамматики
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 803; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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