Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Формат кода команды




Общая структура кодов большинства команд обработки данных микропроцессора 8086 следующая:

┌──────────┐ ┌─────────┐ ┌───────────┐ ┌──────────────┐ ┌───────────┐

│ Prefixes │ │ Op Code │ │ ModRegR/M │ │ Displacement │ │ Immediate │

└──────────┘ └─────────┘ └───────────┘ └──────────────┘ └───────────┘

Как видно из приведённого рисунка, код команды в общем случае состоит из пяти частей:

– префиксов (Prefixes) – 0–3 байта;

– кода операции (Op Code) – 1 байт;

– байта ModRegR/M – 1 байт;

– отклонения (Displacement) – 0–2 байта;

– непосредственного операнда (Immediate) – 0–2 байта.

В любой инструкции присутствует код операции. Все остальные поля кода команды используются при возникновении такой необходимости. Длина кода команды колеблется от 1 до 9 байтов.

Инструкции переходов, использующие относительную адресацию, имеют следующий формат кода команды:

┌─────────┐ ┌──────────────┐

│ Op Code │ │ Displacement │

└─────────┘ └──────────────┘

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

Команды, использующие 8-разрядное отклонение, обеспечивают выполнение так называемых коротких переходов, а команды с 16-разрядным отклонением – длинных переходов. В любом случае переход является ближним (внутрисегментным).

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

┌─────────┐ ┌────────┐ ┌─────────┐

│ Op Code │ │ Offset │ │ Segment │

└─────────┘ └────────┘ └─────────┘

Поля смещения (Offset) и селектора сегмента (Segment) занимают по два байта и вместе составляют адрес команды, на которую производится дальний (межсегментный) переход.

Формат инструкций перехода, использующих косвенную адресацию, сводится к общему формату команды обработки данных. У них никогда не бывает поля непосредственного операнда, но всегда присутствует байт ModRegR/M; префиксы и отклонение могут присутствовать или отсутствовать. Если выполняется ближний (внутрисегментный) переход, т.е. если содержимое регистра CS не изменяется, смещение новой инструкции в текущем сегменте кода может содержаться либо в регистре общего назначения, либо в двухбайтовой области памяти, что определяется байтом ModRegR/M. Если же выполняется дальний (межсегментный) переход, то и новый селектор сегмента кода, и смещение находятся в четырёхбайтовой области памяти, адрес которой задаётся байтом ModRegR/M.

Некоторые инструкции имеют формат кода команды, отличающийся от вышеприведённых. Описание таких “нестандартных” форматов приводится при описании соответствующих инструкций.

Ниже более подробно рассматриваются компоненты кода команды обработки данных. Поля кодов инструкций переходов не рассматриваются, поскольку их назначение полностью ясно из приведённых выше рисунков и из описания в параграфе “Адреса переходов” подраздела 0 “Адресация операндов”.




Поделиться с друзьями:


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


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



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




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