Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 23 стр.

UptoLike

Составители: 

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