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

UptoLike

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

Имя Порта Адрес А1 А0
A 0 0
B 0 1
C 1 0
RGC 1 1
Теперь выпишем полные адреса этих элементов в двоичном и
шестнадцатеричном кодах с учетом уравнения выборки чипа и адресов
внутренних элементов ИФ:
Таблица 14 —Синтез адресов выборки элементов ИФ
Имя
А9 А8 А7 А6 А5 А4 А3 А2
А1 А0 Адрес
PA 1 1 1 1 1 1 1 1 0 0 3FC
PB 1 1 1 1 1 1 1 1 0 1 3FD
PC 1 1 1 1 1 1 1 1 1 0 3FE
3 F C…F
Естественно, что в микропроцессорной системе в любой момент
времени микропроцессор ведет диалог только с одной интерфейсной ИС,
поэтому недопустимо, чтобы в интерфейсе были элементы с
одинаковыми адресами (уравнениями выборки чипа ИФ).
Итак, теперь известно, как по схеме подсоединения интерфейсной
ИС к шине адреса системной магистрали можно определить адреса
элементов интерфейса. Теперь можно познакомиться с командами
ввода-вывода. Для этого сначала необходимо поточнее уяснить
назначение сигналов системной магистрали: -IOWR, —IORD и -
MEMWR, -MEMRD.
Если микропроцессор вырабатывает строб (короткий сигнал) -
MEMRD (чтение ячейки памяти) или строб -MEMWR (запись в ячейку
памяти), то это может быть вызвано только командами, оперирующими
пересылкой данных между запоминающим устройством (ЗУ) и
микропроцессором. Например,
MOV AX,[BX] или PUSH AX.
Если микропроцессор оперирует с интерфейсом внешних устройств, то
он должен вырабатывать :
а) строб -IORDпри вводе данных из порта (INPUT);
б) строб -IOWRпри выводе данных в порт (OUTPUT).
МП 8086 поддерживает следующие команды ввода-вывода:
1) Ввод.
а) Ассемблер: IN AL,DX; комментарий: ввести в регистр AL
данные из порта, адрес которого взять из регистра DX.
б) Машинный код команды состоит из одного КОП: КОП
= ЕС.
Следовательно, прежде. чем использовать команду IN, надо в DX
загрузить адрес порта.
Пример 1 — Ввести байт данных из порта В (смотрите рисунок 9 и
таблицу 14):
68
                        Имя Порта Адрес А1 А0
                             A         0 0
                             B         0 1
                             C         1 0
                           RGC         1 1
           Теперь выпишем полные адреса этих элементов в двоичном и
     шестнадцатеричном кодах с учетом уравнения выборки чипа и адресов
     внутренних элементов ИФ:
Таблица 14 —Синтез адресов выборки элементов ИФ
             Имя А9 А8 А7 А6 А5 А4 А3 А2 А1 А0 Адрес
             PA 1 1 1 1 1 1 1 1 0 0 3FC
             PB 1 1 1 1 1 1 1 1 0 1 3FD
             PC 1 1 1 1 1 1 1 1 1 0 3FE
            3             F            C…F
            Естественно, что в микропроцессорной системе в любой момент
      времени микропроцессор ведет диалог только с одной интерфейсной ИС,
      поэтому недопустимо, чтобы в интерфейсе были элементы с
      одинаковыми адресами (уравнениями выборки чипа ИФ).
      Итак, теперь известно, как по схеме подсоединения интерфейсной
ИС к шине адреса системной магистрали можно определить адреса
элементов интерфейса. Теперь можно познакомиться с командами
ввода-вывода. Для этого сначала необходимо поточнее уяснить
назначение сигналов системной магистрали: -IOWR, —IORD и -
MEMWR, -MEMRD.
      Если микропроцессор вырабатывает строб (короткий сигнал) -
MEMRD (чтение ячейки памяти) или строб -MEMWR (запись в ячейку
памяти), то это может быть вызвано только командами, оперирующими
пересылкой данных между запоминающим устройством (ЗУ) и
микропроцессором. Например,
      MOV AX,[BX] или PUSH AX.
      Если микропроцессор оперирует с интерфейсом внешних устройств, то
он должен вырабатывать :
      а) строб -IORD — при вводе данных из порта (INPUT);
      б) строб -IOWR — при выводе данных в порт (OUTPUT).
МП 8086 поддерживает следующие команды ввода-вывода:
      1) Ввод.
            а) Ассемблер: IN AL,DX; комментарий: ввести в регистр AL
      данные из порта, адрес которого взять из регистра DX.
            б) Машинный код команды состоит из одного КОП: КОП
      = ЕС.
Следовательно, прежде. чем использовать команду IN, надо в DX
загрузить адрес порта.
      Пример 1 — Ввести байт данных из порта В (смотрите рисунок 9 и
таблицу 14):
68