ВУЗ:
Составители:
Рубрика:
3.1 Тип кода операции с dst и rsc
По формату КОП видно, что расположение dst и src такое же, как и в
ассемблере: слева приемник (dst), справа источник (src). В простеньких
микропроцессорах фирмы Intel так и было. Но в этом микропроцессоре, чтобы
придать ему такие же мощные формы адресации операндов, как у
микропроцессоров фирм DEC или Motorola, к dst (разряды D7, D6)
«прилепили» расширение (разряды D2..D0). А для источника (разряды D5..D3)
оставили по-прежнему скромные возможности: это адрес (или номер) одного из
8-ми регистров МП. Вот с него и начнем.
Посмотрим на архитектуру МП 8086 (рисунок 3), на адреса регистров.
Видно, что здесь есть элементы с одинаковыми адресами. Например, регистр DI
имеет адрес 111
2
, и регистр BH имеет тот же адрес. Единственная разница в
том, что DI —16-разрядный регистр, а BH —8-разрядный. Значит, в КОП
должен быть предусмотрен отличительный признак байта или слова. Это
разряд D8 (W — word — слово). Для него возможны следующие случаи:
а) W= 0 — значит, что все адреса касаются однобайтовых данных;
б) W= 1 — значит, что все адреса имеют отношение к словам.
Не помешает напомнить, что байт — 8 разрядов, а слово — это
2 байта, то есть 16 разрядов. Следовательно, для нашего примера, если
D8=0 (W=0), то src есть BH; а если D8=1 (W=1), то src есть DI, то есть совсем
другой и уже 16-и разрядный регистр.
Теперь, что касается dst. Здесь несколько сложнее. Под адрес dst отведено
5 разрядов. Следовательно, число вариантов 2
5
=32. Из формата видим, что
основой адресации dst является mod (D7,D6) (moda — модификация). Глядя на
расширение dst, обнаруживаем, что возможны принципиально только два
варианта: приемник — это или регистр микропроцессора (reg), или элемент ЗУ
(mem - MEMORY — память).
1-й вариант
Приемником является регистр (reg); в этом случае mod=11. Выделим этот
вариант в виде таблицы 2:
Таблица 2
mod dst
11 reg
Номера регистров в поле D2..D0 определяются точно так же, как для src.
2-й вариант
Приемником является элемент ЗУ (ОЗУ или ПЗУ). Здесь возможны
24 подварианта. Их можно объединить в 7 глобальных групп (собственно, это и
является главным критерием). Для mod после таблицы 2 осталось
3 комбинации: 00
2
, 01
2
, 10
2
. Составим соответствующую этим комбинациям
таблицу, где число столбцов будет 3, а число строк —2
3
=8 (комбинации в
D2..D0). В координатных клетках обозначим уравнение адреса EA, то есть как
он складывается (EA —эффективный адрес без учета сегментного регистра).
В таблице 3 выделены глобальные группы в количестве 6 штук. Они
определяются комбинациями разрядов D7, D6 и D2. Кроме этого, в таблице
23
3.1 Тип кода операции с dst и rsc По формату КОП видно, что расположение dst и src такое же, как и в ассемблере: слева приемник (dst), справа источник (src). В простеньких микропроцессорах фирмы Intel так и было. Но в этом микропроцессоре, чтобы придать ему такие же мощные формы адресации операндов, как у микропроцессоров фирм DEC или Motorola, к dst (разряды D7, D6) «прилепили» расширение (разряды D2..D0). А для источника (разряды D5..D3) оставили по-прежнему скромные возможности: это адрес (или номер) одного из 8-ми регистров МП. Вот с него и начнем. Посмотрим на архитектуру МП 8086 (рисунок 3), на адреса регистров. Видно, что здесь есть элементы с одинаковыми адресами. Например, регистр DI имеет адрес 1112, и регистр BH имеет тот же адрес. Единственная разница в том, что DI —16-разрядный регистр, а BH —8-разрядный. Значит, в КОП должен быть предусмотрен отличительный признак байта или слова. Это разряд D8 (W — word — слово). Для него возможны следующие случаи: а) W= 0 — значит, что все адреса касаются однобайтовых данных; б) W= 1 — значит, что все адреса имеют отношение к словам. Не помешает напомнить, что байт — 8 разрядов, а слово — это 2 байта, то есть 16 разрядов. Следовательно, для нашего примера, если D8=0 (W=0), то src есть BH; а если D8=1 (W=1), то src есть DI, то есть совсем другой и уже 16-и разрядный регистр. Теперь, что касается dst. Здесь несколько сложнее. Под адрес dst отведено 5 разрядов. Следовательно, число вариантов 25=32. Из формата видим, что основой адресации dst является mod (D7,D6) (moda — модификация). Глядя на расширение dst, обнаруживаем, что возможны принципиально только два варианта: приемник — это или регистр микропроцессора (reg), или элемент ЗУ (mem - MEMORY — память). 1-й вариант Приемником является регистр (reg); в этом случае mod=11. Выделим этот вариант в виде таблицы 2: Таблица 2 mod dst 11 reg Номера регистров в поле D2..D0 определяются точно так же, как для src. 2-й вариант Приемником является элемент ЗУ (ОЗУ или ПЗУ). Здесь возможны 24 подварианта. Их можно объединить в 7 глобальных групп (собственно, это и является главным критерием). Для mod после таблицы 2 осталось 3 комбинации: 002, 012, 102. Составим соответствующую этим комбинациям таблицу, где число столбцов будет 3, а число строк —23=8 (комбинации в D2..D0). В координатных клетках обозначим уравнение адреса EA, то есть как он складывается (EA —эффективный адрес без учета сегментного регистра). В таблице 3 выделены глобальные группы в количестве 6 штук. Они определяются комбинациями разрядов D7, D6 и D2. Кроме этого, в таблице 23
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »