Введение в микропроцессоры. Конспект лекций по курсу "Микропроцессорные устройства", страница 21

RIM - чтение масок прерываний (отсутствует в системе команд МП 8080), после выполнения этой команды в аккумуляторе находится код следующего формата:

D7

D6

D5

D4

D3

D2

D1

D0

SID

I7.5

I6.5

I5.5

IF

M7.5

M6.5

M5.5

В приведенной таблице:

SID - значение сигнала на входе с одноименным названием:

Ix.5, где х = 7, 6, 5 - состояния сигналов на входах запроса прерывний RSTx.5 ;

IF - состояние триггера разрешения прерываний;

Мх.5, где х = 7, 6, 5 - состояния масок запросов на прерывания RSTx.5, 1:4:1;

SIM - установка масок прерываний (отсутствует в системе команд МП 8080), во время выполнения команда следующим образом трактует содержимое аккумулятора:

D7

D6

D5

D4

D3

D2

D1

D0

SOD

SOE

x

R7.5

MSE

M7.5

M6.5

M5.5

В приведенной таблице:

SOD - значение этого бита будет выведена на выход с одноименным названием, если бит SOE установлен;

SOE - бит разрешения передачи последовательных данных, если установлен, и запрещения передачи в противном случае;

R7.5 - бит сброса триггера tRSR7.5, который аппаратно сбрасывается при выходе из обработчика прерываний (см. 2.5), но программист может сбросить этот триггер в произвольное время, используя команду SIM;

MSE - бит разрешения установки масок прерываний, если установлен, и запрещения установки в противном случае;

Мх.5 - маски запросов прерываний RSTx.5, могут быть установлены, если MSE = 1, 1:4:1.

2.8.13. Примеры программирования МП М1821ВМ85А

Начала программирования МП INTEL 8080 с системой команд, составляющей подмножество команд МП М1821ВМ85А, достаточно полно изложены в [7] (см. с. 142...208). В этой работе, в частности, изложены: арифметические и логические операции над байтами; организация циклов; поиск максимума/минимума; работа с подпрограммами и т.п. К этому может быть добавлено: арифметические операции над словами; работа со стеком; поддержка прерываний. В примерах используется ассемблер, встроенный в интегрированную среду разработки программ IDEKOM [8]. Во всех примерах символ ²;² отделяет комментарий от команды.

а) Сложение двух слов

Задание: сложить два целых числа Alpha, Betta (соответствующих типам INTEGER, WORD в языке программирования PASCAL или int, unsigned int в языке программирования СИ). Результат записать в переменную Sum. Все три переменные располагаются в смежных областях адресного пространства памяти МП, начиная с адреса 8000h.

Метод решения: сложение заданных слов производится командой DAD RP. Эта простая задача приведена, в основном, для знакомства с директивами языка ассемблера.

ORG

8000h

; Задаем адрес начала программы

Alpha:

DW

1111h

; Инициализируем переменную Alpha

Betta:

DW

2222h

; Инициализируем переменную Betta

Sum:

DS

2

; Резервируем два байта для результата

Start:

; Определяем метку начала программы

LHLD

Alpha

; (HL):= [Alpha]

XCHG

; (DE):= [Alpha]

LHLD

Betta

; (HL):= [Betta]

DAD

D

; (HL):= [Alpha] + [Betta]

SHLD

Sum

; [Sum]:= [Alpha] + [Betta]

RST

4

; Останов МП с выходом в МОНИТОР

END

Start

; Останов трансляции программы, после

; загрузки программы в ОЗУ МП передать

; управление на метку Start

б) Уменьшение всех элементов целочисленного массива

Задание: уменьшить все элементы целочисленного массива Data раз­мер­ности Size = 9 на величину Delta.

Метод решения: уменьшение производится командой DSUB.