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

UptoLike

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

Решение.
MOV DX,ОЗFD ;DX := 3FD — адрес порта В ;
IN AL,DX. ; ввести в AL МП из порта В байт данных.
2) Вывод.
а) Ассемблер: OUT DX,AL; комментарий: вывести из регистра
AL МП байт данных в порт, адрес которого взять из DX.
б) машинный код состоит только из КОП: КОП = ЕЕ.
Пример применения этой команды можно не приводить, так как по
существу он не отличается от примера 1. Таким образом, выбор команд
ввода-вывода невелик, но достаточен.
13 Обслуживание прерываний. Контроллер прерываний
13.1 Процедура прерываний и команды прерываний
Что должен делать микропроцессор, обнаружив на своем входе INT
сигнал «1» (смотрите рисунок 3 в главе 2)? Он должен:
во-первых, закончить текущую команду, на которой его
«прихватил» запрос: INT = 1;
во-вторых, если флаг IF был равен «1» (разрешение аппаратного
прерывания), то вместо сигналов чтения -MEMRD или -IORD
микропроцессор вырабатывает сигнал чтения: -INTA.
Что должен прочитать МП этим сигналом с шины данных
системной магистрали? По логике событийКОП следующей команды.
Но он вырабатывает не сигнал чтения ячейки ЗУ –MEMRD, а сигнал -
INTA. Вместе с тем, МП посредством этого сигнала будет загружать
КОП следующей команды, и это должна быть первая команда
подпрограммы, которая обслуживает прерывание. Следовательно,
источником этой команды должен быть необычный интерфейсный
элемент, для которого сигнал –INTA является сигналом чтения (ввода).
Вот этим элементом и является контроллер прерываний. Именно он
обслуживает аппаратную часть процедуры прерывания. Но прежде, чем
рассмотреть контроллер, давайте еще раз вернемся к процедуре
прерывания.
МП 8086 поддерживает (как и все другие микропроцессоры)
программное и аппаратное прерывание.
Программное прерывание инициируется по команде прерывания.
а) Ассемблер: INT n, где nоднобайтовый вектор перехода,
указывается в H-коде.
б) Машинный код — 2 байта: 1-й байтКОП, 2-й байтвектор.
КОП = CD. Вектор = 0...FF (0...255
10
).
Что делает микропроцессор, обнаружив команду INT n?
1) Запрещает дальнейшее аппаратное прерывание: IF = 0 (то есть,
выполняет скрытую команду CLI).
2) Загружает последовательно в стек:
69
Решение.
    MOV DX,ОЗFD ;DX := 3FD — адрес порта В ;
    IN AL,DX.        ; ввести в AL МП из порта В байт данных.
    2) Вывод.
          а) Ассемблер: OUT DX,AL; комментарий: вывести из регистра
    AL МП байт данных в порт, адрес которого взять из DX.
          б) машинный код состоит только из КОП: КОП = ЕЕ.
          Пример применения этой команды можно не приводить, так как по
    существу он не отличается от примера 1. Таким образом, выбор команд
    ввода-вывода невелик, но достаточен.

     13 Обслуживание прерываний. Контроллер прерываний

13.1 Процедура прерываний и команды прерываний
           Что должен делать микропроцессор, обнаружив на своем входе INT
     сигнал «1» (смотрите рисунок 3 в главе 2)? Он должен:
     во-первых, закончить текущую команду, на которой его
«прихватил» запрос: INT = 1;
     во-вторых, если флаг IF был равен «1» (разрешение аппаратного
прерывания), то вместо сигналов чтения -MEMRD или -IORD
микропроцессор вырабатывает сигнал чтения: -INTA.
           Что должен прочитать МП этим сигналом с шины данных
     системной магистрали? По логике событий — КОП следующей команды.
     Но он вырабатывает не сигнал чтения ячейки ЗУ –MEMRD, а сигнал -
     INTA. Вместе с тем, МП посредством этого сигнала будет загружать
     КОП следующей команды, и это должна быть первая команда
     подпрограммы, которая обслуживает прерывание. Следовательно,
     источником этой команды должен быть необычный интерфейсный
     элемент, для которого сигнал –INTA является сигналом чтения (ввода).
     Вот этим элементом и является контроллер прерываний. Именно он
     обслуживает аппаратную часть процедуры прерывания. Но прежде, чем
     рассмотреть контроллер, давайте еще раз вернемся к процедуре
     прерывания.
           МП 8086 поддерживает (как и все другие микропроцессоры)
     программное и аппаратное прерывание.
     Программное прерывание инициируется по команде прерывания.
     а) Ассемблер: INT n, где n — однобайтовый вектор перехода,
указывается в H-коде.
     б) Машинный код — 2 байта: 1-й байт — КОП, 2-й байт — вектор.
КОП = CD. Вектор = 0...FF (0...25510).
     Что делает микропроцессор, обнаружив команду INT n?
     1) Запрещает дальнейшее аппаратное прерывание: IF = 0 (то есть,
выполняет скрытую команду CLI).
     2) Загружает последовательно в стек:
                                                                       69