- •Изучение организации, режимов работы, системы команд и основных директив программного имитатора микропроцессора i8080
- •1 Цель лабораторной работы
- •2 Домашнее задание
- •3 Контрольные вопросы
- •4 Порядок выполнения работы
- •5 Содержание отчета
- •6. Список литературы
- •7 Основные теоретические положения
- •7.2 Байт состояния микропроцессора
- •7.3 Адресное пространство микропроцессора
- •7.4 Назначение учебной программы-имитатора микропроцессора i8080
- •7.6 Подготовка программы-имитатора к работе
- •7.7 Описание интерфейса программы-имитатора
5 Содержание отчета
5.1 Цель работы.
5.2 Основные теоретические положения работы: программная модель МП, байт состояния процессора, понятие адресного пространства МП.
5.3 Результаты выполнения работы по пп. 4.2 – 4.7 в соответствующей форме.
5.4 Краткий анализ полученных результатов (выводы по работе).
6. Список литературы
1.
7 Основные теоретические положения
7.1 Программная модель микропроцессора i8080
Рассмотрим упрощённую структуру МП i8080, содержащую только узлы, наиболее важные для понимания программистом процесса работы МП (рис. 1).
Обычно программист не вникает в структуру связей между функциональными узлами устройства. Ему необходимо знать, в какие регистры можно поместить данные и в каких регистрах разместится результат. Для него микропроцессор – это набор регистров общего назначения (РОН) и специальных регистров, а также флагов (признаков), которые устанавливаются в результате тех или иных операций.
В верхней части рисунка представлены все программно-доступные (адресуемые в командах в явной или неявной форме) узлы МП и памяти, а в нижней части – программно-недоступные узлы процессора, наиболее существенные для процесса выполнения команд.
Аккумулятор А, регистр флагов F и регистры общего назначения – В, С, D, Е, Н, L микропроцессора i8080 8-разрядные, причём указанные регистры могут программно объединяться в регистровые пары (RР), реализуя 16-разрядные регистры. Регистр флагов F и аккумулятор А совместно образуют 16-разрядный регистр слова состояния процессора, именуемый PSW (Processor status word). Имена остальных регистровых пар В, D и Н определяются именами старших регистров соответствующих пар.
Идентификатор PSW используется в командах обращения к стеку при спасании и восстановлении регистров МП, т.е. при сохранении текущего состояния прерываемой программы. Аккумулятор А и регистр флагов F всегда адресуются в командах Ассемблера в неявной форме.
Пять двоичных признаков (флагов) результата, полученного в аккумуляторе, фиксируются в регистре флагов F и могут в дальнейшем использоваться при выполнении команд условных переходов, вызовов и возвратов из подпрограмм. Остальные три разряда регистра не используются, для определённости в ник записаны соответствующие константы (см. рис. 1). Значения флагов формируются следующим образом.
Флаг знака результата S (“sign”) - копирует значение старшего разряда результата.
Признак нулевого результата Z (“zero”) - принимает значение Z = l, если результат в аккумуляторе равен нулю, иначе Z = 0.
Признак вспомогательного переноса C‘ – устанавливается в единицу при возникновении переноса из младшей тетрады аккумулятора в старшую (перенос из полубайта). Используется при обработке двоично- десятичных кодов.
Признак паритета (чётности) Р (“parity”) – принимает значение Р = 1,если число единиц в байте результата четно; иначе Р = 0.
Признак переноса из байта CY (“carry”) – принимает значение СY = 1, если при выполнении команды возникает перенос из старшего разряда (или заём в него), иначе CY = 0. Этот флаг является наиболее мощным средством, позволяющим на малоразрядном МП проводить обработку данных любой длины путём последовательной обработки байтов операндов.
Узловой точкой всех преобразований данных и основным рабочим регистром микропроцессора является аккумулятор А. Он используется для хранения одного из операндов и результата операции, а также для обмена данными между МП и периферийными устройствами по командам ввода-вывода.
Три пары регистров общего назначения В, D и Н могут использоваться в качестве указателей при косвенной адресации памяти в однобайтных командах. Однако обычно для этого применяется регистровая пара RP Н, так как широкий набор команд типа MOV M,R {операция M(H,L):=(R)} или MOV R,M {(R):=M(H,L)} позволяет адресовать в команде не только произвольную ячейку памяти, но и любой из программно-доступных регистров R, тогда как RP В и RP D (например, в командах LDAX В {операция (А):= :=М(В.С)} или STAX В {операция М(В, С) : = ( А) }) подразумевают адресацию ячеек памяти только с аккумулятором.
Рисунок 1 – Программная модель МП i8080
Программный счётчик PC хранит адрес памяти текущей команды исполняемой программы. Начальный адрес устанавливается нулевым при включении или начальной установке (сбросе) микроэвм. Выполнение программы начинается в этом случае с нулевой ячейки программной' памяти, в которую можно поместить команду безусловной передачи управления любому требуемому адресу. Произвольный начальный адрес может быть загружен в PC оператором с пульта управления.
Указатель стека SP адресует последнюю занятую ячейку стековой памяти.
