
- •Основы микропроцессорной техники
- •Введение
- •1. Система команд микропроцессора 8080 Представление команд в числовой форме
- •Мнемоническое представление команд Ассемблер
- •Директивы Ассемблера процессора 8080
- •Методы адресации операндов команд
- •Биты признаков
- •Общее представление команд
- •Команды пересылок
- •Однобайтные пересылки
- •Двухбайтные пересылки
- •Команды передачи управления
- •Команды безусловных переходов
- •Команды условных переходов
- •Команды организации подпрограмм
- •Команды безусловных вызовов и возврата
- •Команды условных вызовов и возврата
- •Команды арифметических, логических и сдвиговых операций
- •Команды сложения
- •Команды вычитания
- •Команды логических операций
- •Команды сравнения
- •Команды сдвига
- •Специальные арифметическо-логические команды
- •Команды управления стеком
- •Команды ввода, вывода и управления состоянием процессора Команды ввода и вывода
- •Команды управления прерываниями
- •Команда перевода процессора в состояние останова
- •Учебная микро-эвм умк-80
- •Управление микро-эвм средствами Монитора
- •Чтение и модификация содержимого памяти хххх
- •Чтение и модификация содержимого регистров
- •Запуск программы пользователя
- •Отражение типа машинного цикла через слово состояния
- •Пошаговые режимы
- •Порядок выполнения работы Заполнение памяти средствами Монитора
- •Определение исходного положения области стека
- •Ввод программы средствами Монитора
- •Лабораторная работа № 1.2 Учебная микро-эвм умпк-80
- •Краткие сведения из теории Назначение умпк-80
- •Структура умпк-80 и распределения адресного пространства
- •Управление микро-эвм средствами Монитора
- •Тестирование микро-эвм и начальная установка
- •Порядок выполнения работы Исследование порядка включения умпк-80
- •Исследование содержимого памяти
- •Запись числа в память умпк-80
- •Запись числа в программно-доступные регистры
- •Запуск программы
- •Контроль выполнения команд программы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа № 2 Отдельные команды, простые программы
- •Краткие сведения из теории Типы команд
- •Форматы команд
- •Способы адресации операндов
- •Признаки результатов операций
- •Представление программы
- •Порядок выполнения работы Исследование отдельных команд арифметических и логических операций
- •Исследование команд пересылок и способов адресации операндов
- •Исследование команд арифметического сложения
- •Исследование операций сравнения однобайтных чисел
- •Содержание отчёта
- •Контрольные вопросы
- •Библиографический список
Команды безусловных переходов
Команда PCHL обеспечивает загрузку счётчика команд из регистровой пары HL.
(PC)(HL)
Адрес перехода предварительно должен быть определён в регистровой паре HL. Данная команда – очень короткая (1 байт) и быстрая (всего 5 тактов). Эффективность её применения зависит от решения с подготовкой адреса в HL.
Пример 1.29
Адрес Число Метка Мнемокод Комментарий
0800 21 10 08 LXI H,M00 ;Загрузка в HL адреса перехода
0803 E9 PCHL ;Переход по адресу в HL
…………………………………….
0810 78 M00: MOV A,B
0811 41 MOV B,C
…………………………………….
Команда JMP adr обеспечивает непосредственную прямую загрузку счётчика команд байтами adr из состава команды. Она по формату состоит из трёх байтов и требует для выполнения 10 тактов. Но, в отличие от команды PCHL, эта команда не требует подготовительных операций.
Команды условных переходов
Команды условных переходов обеспечивают анализ выполнения выбираемого кодом команды условия и переход по указанному в команде адресу в случае выполнения условия. При обнаружении невыполнения условия переход выполнен не будет, а вместо него процессор станет выполнять следующую по порядку команду.
Общая схема выполнения таких команд
JMP if cnd (перейти, если выполнено условие cnd)
Условиями могут быть выбранные состояния битов регистра признаков. Например, Z=0, Z=1, CY=0, CY=1, так далее. Для каждого из пяти битов признаков возможны по два условия. Поэтому имеется всего 10 команд условных переходов.
Общий формат мнемоник таких команд
Jcnd adr
где adr – адрес перехода для случая выполнения условия, а вместо cnd добавляются символы выбранного условия:
JNZ adr – переход, если обнаружен ненулевой результат,
JZ adr – переход, если обнаружен нулевой результат,
JNC adr – переход, если обнаружено отсутствие переноса,
JC adr – переход, если обнаружен наличие переноса,
JPO adr – переход, если обнаружено нечётное число битов “1” результата,
JPE adr – переход, если обнаружено чётное число битов “1” результата,
JP adr – переход, если обнаружен положительный знак результата,
JM adr – переход, если обнаружен отрицательный знак результата.
Все команды – трёхбайтные по формату и требуют на выполнение 10 тактов, как и команда JMP.
Пример 1.30
Метка Мнемокод Комментарий
MVI C,55h ;Установка счётчика проходов цикла
LXI H,0BF0h ;Установка указателя ячеек памяти
MVI A,00 ;Обнуление аккумулятора
M00: MOV M,A ;Обнуление очередной ячейки памяти
INX H ;HL+1 Продвижение указателя ячеек
DCR C ;C–1 Подсчёт ячеек и установка Z
JNZ M00 ;Переход к M00, если не выполнено Z=1
HLT ;Останов, если Z=1
Команды организации подпрограмм
Команды организации подпрограмм, как и команды передачи управления, обеспечивают переключение процессора от нормальной последовательности выполнения команд к выполнению действий команд, начинающихся в выбираемом месте памяти. Но при этом команды организации подпрограмм реализуют не простой переход внутри программы, а переход в соответствии с правилами организации подпрограммы – независимой структурной единицы программы. Согласно этим правилам переход предполагает возврат из подпрограммы к тому месту вызывающей программы, из которого переход был выполнен. Поэтому переход к подпрограмме называют вызовом подпрограммы и он обеспечивается из вызывающей программы командами вызова подпрограммы. А вызываемая подпрограмма, в свою очередь, должна быть структурно построена так, чтобы по завершении операций для выполнения которых она была вызвана, подпрограмма обеспечила бы возврат в исходное место вызывающей программы для продолжения последовательного её хода. Такой возврат обеспечивают команды возврата из подпрограммы.
Для того, чтобы реализовать возврат из подпрограммы назад к месту её вызова, применяется следующий приём. Команда вызова выполняется процессором так что непосредственно перед переходом на начало подпрограммы будет сохранён в стеке адреса возврата в вызывающую программу, который в этот момент должен быть в счётчике команд процессора. А команда возврата из подпрограммы для обеспечения возврата выполнит чтение из стека в счётчик команд, того адреса который сохраняла ранее команда вызова подпрограммы. В этом смысле, можно считать что команды вызова и возврата работают совместно.
В зависимости от наличия условия вызова и возврата различают команды условных и безусловных вызовов и возвратов. В этом смысле данные команды аналогичны командам передач управления.
Кроме того команды вызова подпрограмм различаются способом указания адреса начала вызываемой подпрограммы: он может либо указываться произвольным выбором программиста в двух байтов из состава команды; либо быть одним из восьми фиксированных адресов, выбираемых в зависимости от выбранного программистом кода команды вызова подпрограммы.