Студопедия

КАТЕГОРИИ:


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

Форматы команд микропроцессора INTEL

 

Регистры общего назначения (РОНы) разбиты на две группы:

1. группа HL, состоящая из регистров AX, BX, CX, DX, которые предназначены для хранения данных и допускают раздельную адресацию их старших Н и младших L половин.

2. группа PI, содержащая указательные регистры BP, SP и индексные регистры SI, DI, в которых обычно храниться адресная информация.

РОНы

15 8 7 0
  AH AL АХ - аккумулятор
  CH CL СХ
  DH DL DX
  DH BL ВХ
  SP Адресный регистр
  BP Адресный регистр
  SI Адресный регистр
  DI Адресный регистр

 

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

Формат двухоперандной (двуядерной) команды имеет следующий вид:

 

 

Cop dw md reg r/m Disp L Disp H

1 2 3 4

 

Первый байт команды содержит Cop – код операции и два однобитовых поля: d- бит направления передачи и w- длина операнда.

При d=1, то осуществляется передача операнда или результата операции в регистр, номер которого задается полем reg второго байта команды.

При d=0, то осуществляется передача операнда или результата из адресуемого полем reg регистра.

Поле W идентифицирует тип(разрядность) операндов:

Если w=1, то команда оперирует с 2-хбайтным словом.

w=0, команда оперирует с 1 байтом.

2-ой байт – постбайт, определяет участвующие в операции регистры или регистр и ячейку памяти. постбайт состоит из 3-х полей:

md – режим, показывающий как интерпретируется поле r/m для нахождения первого операнда.

Reg – регистр, используется в 2 –х операндных командах.

R/m – регистр/память

Поле reg определяет операнд, который обязательно находится в регистре микропроцессора и считается вторым операндом. Поле r/m определяет операнд, который может находится в регистре или памяти и условно считается первым. Поле reg используется только для указания регистра в двухоперандных командах. Если в команде один операнд, то он идентифицируется полем R/m, а поле reg отсутствует. Вместо поля reg в этом случае используется расширение кода операции.

Поле md(модальность) показывает, как интерпретируется поле R/m для нахождения первого операнда:

Если md=11, то операнд находится в регистре,номер которого задан полем R/m. При других значениях md операнд находится в памяти.

Когда адресуется память, то поле md определяет вариант использования смещения disp, находящегося в 3 и 4 байте.

Disp – смещение в команде, интерпретируемое как целое число со знаком.

md=00 смещение disp отсутствует.

md=01 disp =disp L, команда содержит 8 бит, смещение D8.

md=10 disp= dispH dispL, команда содержит 16 бит, смещение D16.

 

Режимы адресации (вычисление эффективного адреса ЕА)

Поле md
  R/m md=00 disp=0 md=01 dispH=dispL=D8 md=10 disp=dispH dispL  
W=1 W=0
  BX+SI BX+SI+D8 BX+SI+D16 AX AL
  BX+DI BX+DI+D8 BX+DI+D16 CX CL
  BP+SI BP+SI+D8 BP+SI+D16 DX DL
  BP+DI BP+DI+D8 BP+DI+D16 BX BL
  SI SI+D8 SI+D16 SP AH
  DI DI+D8 DI+D16 BP CH
  DI6 BP+D8 BP+D16 SI DH
  BX BX+D8 BX+D16 DI BH

Приведенные в таблице правила имеют одно исключение, позволяющее реализовать прямую(абсолютную) адресацию: если md=D16=dispH dispL.

Таким образом, имеется три варианта интерпретации поля md и восемь вариантов интерпретации поля r/m, что дает 24 варианта вычисления эффективного адреса ЕА.

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

- регистровая адресация. Операнд находится в одном из РОНов или сегментном регистре. Регистр может быть определен в байте кода операции или постбайте (3-битными полями) reg и r/m при условии md=11. Команды, оперирующие содержимым регистров, короткие и быстрые, так как не требуют вычисления эффективного адреса ЕА, и обращения к памяти.

- Непосредственная адресация. Непосредственные операнды – это const длиной 8 или 16 бит, которые размещаются в последних байтах команды.

 

Cop sw md cop r/m Disp L Disp H Data L Data H

 

Так как 2-ой операнд размещается в команде, то поле reg отсутствует, но вместо него используется расширение кода операции cop. Отсутствует бит направления d, так как результат операции можно поместить только на место первого операнда. Место этого бита d занимает бит S, который является признаком использования одного байта для задания непосредственного операнда при работе со словами.

Поля S и W интерпретируются следующим образом:

SW=Х0, один байт данных Data L

SW=01, один байт данных Data H Data L

SW=11, один байт данных, который автоматически расширяется со знаком до 16 бит.

 

- прямая адресация. Эффективным адресом ЕА является содержание байта в смещении disp команды. Реализуется при использовании постбайта с полями md=00 и r/m=10.

- Косвенно-регистровая адресация. Эффективный адрес ЕА равен содержимому одного из регистров SI, DI, BX при md=00 и r/m=100, 101, 111.

- Базовая адресация ЕА вычисляется суммированием содержимого регистров BX и BP со смещением disp при md=01 и 10, r/m=100 и 111.

- Индексная адресация ЕА вычисляется суммированием индексных регистров SI и DI и смещения disp при md=01 и 10 при r/m=100, 101.

- Базовая индексная адресация. ЕА равно сумме содержимого базовых регистров BX или BP, индексного регистра SI или DI и смещения disp. Реализуется при md не равного 11 и r/m=000, 001, 010, 011.

 

<== предыдущая лекция | следующая лекция ==>
Сегментация памяти и вычисление адресов | Сегментная организация памяти
Поделиться с друзьями:


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


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



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




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