Блок управления анализирует состояние модулей по значению (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 ; условный вызов подпрограммы
В МП технике команды условного перехода анализируют не результат выполнения предыдущей команды, а флаги.
Слово состояния МП.
|
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.