
- •Основы микропроцессорной техники
- •Введение
- •1. Система команд микропроцессора 8080 Представление команд в числовой форме
- •Мнемоническое представление команд Ассемблер
- •Директивы Ассемблера процессора 8080
- •Методы адресации операндов команд
- •Биты признаков
- •Общее представление команд
- •Команды пересылок
- •Однобайтные пересылки
- •Двухбайтные пересылки
- •Команды передачи управления
- •Команды безусловных переходов
- •Команды условных переходов
- •Команды организации подпрограмм
- •Команды безусловных вызовов и возврата
- •Команды условных вызовов и возврата
- •Команды арифметических, логических и сдвиговых операций
- •Команды сложения
- •Команды вычитания
- •Команды логических операций
- •Команды сравнения
- •Команды сдвига
- •Специальные арифметическо-логические команды
- •Команды управления стеком
- •Команды ввода, вывода и управления состоянием процессора Команды ввода и вывода
- •Команды управления прерываниями
- •Команда перевода процессора в состояние останова
- •Учебная микро-эвм умк-80
- •Управление микро-эвм средствами Монитора
- •Чтение и модификация содержимого памяти хххх
- •Чтение и модификация содержимого регистров
- •Запуск программы пользователя
- •Отражение типа машинного цикла через слово состояния
- •Пошаговые режимы
- •Порядок выполнения работы Заполнение памяти средствами Монитора
- •Определение исходного положения области стека
- •Ввод программы средствами Монитора
- •Лабораторная работа № 1.2 Учебная микро-эвм умпк-80
- •Краткие сведения из теории Назначение умпк-80
- •Структура умпк-80 и распределения адресного пространства
- •Управление микро-эвм средствами Монитора
- •Тестирование микро-эвм и начальная установка
- •Порядок выполнения работы Исследование порядка включения умпк-80
- •Исследование содержимого памяти
- •Запись числа в память умпк-80
- •Запись числа в программно-доступные регистры
- •Запуск программы
- •Контроль выполнения команд программы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа № 2 Отдельные команды, простые программы
- •Краткие сведения из теории Типы команд
- •Форматы команд
- •Способы адресации операндов
- •Признаки результатов операций
- •Представление программы
- •Порядок выполнения работы Исследование отдельных команд арифметических и логических операций
- •Исследование команд пересылок и способов адресации операндов
- •Исследование команд арифметического сложения
- •Исследование операций сравнения однобайтных чисел
- •Содержание отчёта
- •Контрольные вопросы
- •Библиографический список
Двухбайтные пересылки
Для пересылок между регистрами процессора и памятью имеются команды типа LHLD adr – чтение памяти и SHLD adr – запись в память. Регистрами в этих командах являются регистры пары HL, а память можно определять прямо в самой команде адресом adr. Этот адрес определит место младшего байта числа, а место старшего байта числа окажется по адресу adr+1.
Пример 1.26.
Адрес Число Мнемокод Комментарий
0800 2A 00 0B LHLD 0B00h ; пересылка числа из регистровой пары
; HL в память: M(0B00)(L),
; M(0B01)(H)
0803 22 10 0B SHLD 0B10h ; пересылка числа из памяти
; в регистровую пару HL: M(0B00)(L),
; M(0B01)(H)
Несмотря на то что на выполнение этих команд требуется 16 тактов, аналогичные действия с применением нескольких команд однобайтных пересылок оказываются гораздо более долгими. Например, 36 тактов потребуется в варианте примера 6.7:
Пример 1.27
Метка Мнемокод Комментарий
LDA 0B00 ; 13 тактов
MOV L,A ; 5 тактов
LDA 0B01 ; 13 тактов
MOV H,A ; 5 тактов
Для двухбайтных пересылок между регистрами есть только одна команда, причём не обычная пересылка, а обмен содержимым регистровых пар DE и HL – команда HCHG.
Кроме того, имеются команды непосредственной загрузки регистровых пар и 16-разрядного регистра указателя стека SP вторым и третьим байтами из состава байтов команды – LXI B,d16; LXI D,d16; LXI H,d16; LXI SP,d16. В этих командах d16 – загружаемое двухбайтное число, а регистровые пары обозначены буквами своих старших регистров.
Пример 1.28.
Адрес Число Мнемокод Комментарий
0800 01 00 00 LXI B,0000h ; Пересылка числа 0 в регистр. пару BC
0803 21 97 19 LXI H,1997h ; Пересылка числа 1997 в регистровую
; пару HL: (H)19, (L)97.
Команды передачи управления
Работая обычным образом в состоянии выполнения программы, процессор интерпретирует команды программы последовательно. Прочитав из памяти код очередной команды по адресу, на который указывает счётчик команд, процессор дешифрирует этот код, определяет из скольки байт эта текущая команда состоит. Далее он увеличивает содержимое счётчика команд (PC) на число равное количеству байт текущей команды. Если команда однобайтная, то (PC)(PC)+1; если команда двухбайтная, то (PC)(PC)+2; если команда трёхбайтная, то (PC)(PC)+3. После выполнения текущей команды в счётчике команд, таким образом, уже готов адрес новой команды. Новая команда и последующие интерпретируются далее аналогичным образом. Команды выполняются по очереди в порядке их размещения в памяти.
Вместе с тем, часто по условиям алгоритма возникает необходимость в изменении последовательного хода выполнения команд и организации переходов в различные точки программы. Для этой цели предназначены команды передачи управления. Они способны сформировать новое содержимое счётчика команд таким образом, чтобы обеспечить переход нужную точку. То есть – передать управление процессором тем командам, которые начинаются с адреса точки перехода.
Кроме того, нередко алгоритм требует не просто переходов в программе. Он требует ветвлений хода программы на разные пути, выбираемые в зависимости от результата анализа выполнения каких-то задаваемых условий. В системе команд процессора 8080 для реализации таких действий имеются команды условных переходов. При этом условиями для переходов являются состояния битов регистра признаков.
Команды передач управления различаются наличием или отсутствием условия на выполнение перехода (условный или безусловный переходы). Команды безусловных переходов различаются способом определения нового содержимого счётчика команд. А команды условных переходов различаются вариантами условий.