Микропроцессор. Устройства на базе микропроцессоров. Чтение и запись данных. Операции над четырёхразрядным кодом по машинным командам, страница 5

Блок управления анализирует состояние модулей по значению (READY). Если до начала 3-его такта этот сигнал пассивен то МП в машинный цикл вставляет такты ожиданий, во время которых только опрашивается код готовности. Состояние ожидания отображается активным значением сигнала WAIT. Во время 3-го такта каждого машинного цикла вырабатывается или сигнал DBIN или сигнал (инверсия WR).

Система прерываний МП-ра векторная. Для всех источников прерываний имеется один вход INT. Этот вход является маскируемым. С помощью специальной команды DI можно запретить приём запросов на прерывание. Если запрос не запрещён по активному сигналу INT устройство управления устанавливает специальный триггер прерывания ( что равносильно аппаратному DI). Затем МП заканчивает выполнение текущей команды и вырабатывает сигнал INT т.е. переходит к обслуживанию прерываний. Во время этого цикла внешнее устройство к началу 3-го такта должно выставить на шину данных код любой команды, которая считывается  в РК  и выполняется.

Если это код команды CALL(вызвать подпрограмму) то МП выполняет её чтобы после выполнения программы МП мог опятьпринимать запросы на прерывания в конце подпрограммы. Команда ЕI - разрешить прерывания.

Сигнал сброса RESET (сигнал машинной установки) должен действовать не менее 5 машинных тактов, по этому сигналу обнуляются все регистры МП и устанавливается триггер прерывания, т.е. в начале МП прерываний не принимает. Для разрешения прерываний должна быть выполнена команда EI . После начальной установки в програмном счйтчике знач. '0' т.е. стартовый адрес для МП I8080  -|0000|. Обычно начиная с этого адреса в ПЗУ находится программа начальной установки МП устройства.

Флаговый регистр.

В МП I8080 фиксируется 5 признаков результатов выполнения операции, они разещаются в специальном регистре  F.

Формат флагового регистра.

S

Z

O

CA

1

P

0

C

С-флаг переполнения аккумуляторов (флаг сдвига аккумуляторов используется при операциях сдвига регистров.)

11111111 + 1 = 100000000

     

Флаг переполнения. Наличие единицы указывает, что аккумулятор был переполнен.

С

 
 


Флаг паритета. Дополняет вес кода, полученного в результате операции до чётного; используется для контроля правильности передаваемой информации.

Вес кода – число единиц в байте :

нечётное => P = 1;  чётное => P = 0

Флаг вспомогательного переноса. Устанавливается в 1 если при выполнении операции происходит перенос из 3-го разряда в 4-й.

Этот флаг используется в схеме десятичной коррекции (для программиста не доступен).

01234567

00001111 

+           1

00010000

Флаг нуля Z равен 1 если в результате операции получается ноль.

Флаг знаков S устанавливается в 1 если в старшем разряде аккумулятора после выполнения операции получена 1. Данный флаг следит за последним битом. Не все команды изменяют флаг, поэтому переходы могут осуществляться не сразу после операции.

Пример.

Если при сравнении аккумулятора и регистра B получится 0, то записать содержимое аккумулятора в регистр C, обнулить регистр B и вызвать подпрограмму; в противном случае – не вызывать.

CMP            B              ; сравнение аккумулятора и регистра B

MOV           C,A           ; содержимое аккумулятора переходит в регистр C

MVI             B,00h        ; обнуление регистра B

CZ               ppr            ; условный вызов подпрограммы

В МП технике команды условного перехода анализируют не результат выполнения предыдущей команды, а флаги.


Слово состояния МП.

INT A

WO

STACK

HLTA

OUT

MI

INP

MEMR