
- •Основы микропроцессорной техники
- •Введение
- •1. Система команд микропроцессора 8080 Представление команд в числовой форме
- •Мнемоническое представление команд Ассемблер
- •Директивы Ассемблера процессора 8080
- •Методы адресации операндов команд
- •Биты признаков
- •Общее представление команд
- •Команды пересылок
- •Однобайтные пересылки
- •Двухбайтные пересылки
- •Команды передачи управления
- •Команды безусловных переходов
- •Команды условных переходов
- •Команды организации подпрограмм
- •Команды безусловных вызовов и возврата
- •Команды условных вызовов и возврата
- •Команды арифметических, логических и сдвиговых операций
- •Команды сложения
- •Команды вычитания
- •Команды логических операций
- •Команды сравнения
- •Команды сдвига
- •Специальные арифметическо-логические команды
- •Команды управления стеком
- •Команды ввода, вывода и управления состоянием процессора Команды ввода и вывода
- •Команды управления прерываниями
- •Команда перевода процессора в состояние останова
- •Учебная микро-эвм умк-80
- •Управление микро-эвм средствами Монитора
- •Чтение и модификация содержимого памяти хххх
- •Чтение и модификация содержимого регистров
- •Запуск программы пользователя
- •Отражение типа машинного цикла через слово состояния
- •Пошаговые режимы
- •Порядок выполнения работы Заполнение памяти средствами Монитора
- •Определение исходного положения области стека
- •Ввод программы средствами Монитора
- •Лабораторная работа № 1.2 Учебная микро-эвм умпк-80
- •Краткие сведения из теории Назначение умпк-80
- •Структура умпк-80 и распределения адресного пространства
- •Управление микро-эвм средствами Монитора
- •Тестирование микро-эвм и начальная установка
- •Порядок выполнения работы Исследование порядка включения умпк-80
- •Исследование содержимого памяти
- •Запись числа в память умпк-80
- •Запись числа в программно-доступные регистры
- •Запуск программы
- •Контроль выполнения команд программы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа № 2 Отдельные команды, простые программы
- •Краткие сведения из теории Типы команд
- •Форматы команд
- •Способы адресации операндов
- •Признаки результатов операций
- •Представление программы
- •Порядок выполнения работы Исследование отдельных команд арифметических и логических операций
- •Исследование команд пересылок и способов адресации операндов
- •Исследование команд арифметического сложения
- •Исследование операций сравнения однобайтных чисел
- •Содержание отчёта
- •Контрольные вопросы
- •Библиографический список
1. Система команд микропроцессора 8080 Представление команд в числовой форме
Команды хранятся в основной памяти микро-ЭВМ в виде двоичных чисел. Каждая команда процессора состоит из однобайтного кода операции и возможных, в зависимости от формата, дополнительных одного или двух байтов. Типы форматов команд представлены в табл. 1.1.
Таблица 1.1
Форматы команд
Адрес |
Биты байта |
Обозн |
Назначение байта |
Формат однобайтной команды |
|||
Adr |
D7...0 |
B1 |
Код операции |
Формат двухбайтной команды |
|||
Adr |
D7..0 |
B1 |
Код операции |
Adr+1 |
D7..0 |
B2 |
Байт данных или адреса |
Формат трёхбайтной команды |
|||
Adr |
D7..0 |
B1 |
Код операции |
Adr+1 |
D7..0 |
B2 |
Младший байт числа данных или адреса |
Adr+2 |
D7..0 |
B3 |
Старший байт числа данных или адреса |
В коде операции 8-битной двоичной комбинацией определяются действия процессора, предписываемые командой. Кроме того, в некоторых кодах операций указываются также операнды, с которыми должны выполняться действия. Делается это через указание на регистры процессора, содержащие операнд или его адрес согласно табл. 1.2.
Таблица 1.2
Кодирование регистров в коде операции
Регистр или память M(HL) |
||
Имя |
Код |
Номер |
B |
0 0 0 |
0 |
C |
0 0 1 |
1 |
D |
0 1 0 |
2 |
E |
0 1 1 |
3 |
H |
1 0 0 |
4 |
L |
1 0 1 |
5 |
M(HL) |
1 1 0 |
6 |
A |
1 1 1 |
7 |
Пример 1.1.
Адрес Число Комментарий
0800 78 ;однобайтная команда, выполняющая
;пересылку в аккумулятор из регистра B
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
0 1 1 1 1 0 0 0
Находящиеся в составе данного кода операции биты D7, D6 кодируют действия команды; биты D5..3 кодируют операнд-приёмник – регистр A; биты D2..0 кодируют операнд-источник – регистр B.
Пример 1.2.
Адрес Число Комментарий
0801 06 ; двухбайтная команда, выполняющая
0802 4C ; пересылку в регистр B числа 4C (2й байт команды)
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
0 1 1 1 1 0 0 0
Находящиеся в составе данного кода операции биты D7, D6 кодируют действия команды; биты D5..3 кодируют операнд-приёмник – регистр B; биты D2..0 кодируют операнд источника – 2-й байт команды.
Пример 1.3.
Адрес Число Комментарий
0803 D3 ;двухбайтная команда, выполняющая вывод байта из
0804 … F0 ;аккумулятора в порт с адресом F0, являющимся 2-м байтом
; команды
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
1 1 0 1 0 0 1 1
Все биты находящиеся в составе данного кода операции кодируют действия команды.
Пример 1.4.
Адрес Число Комментарий
0805 21 ;трёхбайтная команда, выполняющая пересылку
0806 …00 ; в регистровую пару HL
0807 …0B ; двухбайтного числа 0B00
В двоичной форме код операции выглядит так
D7 D6 D5 D4 D3 D2 D1 D0
0 0 1 0 0 0 0 1
Биты D5..4 кодируют операнд-приёмник – регистровую пару HL; остальные биты кодируют действия команды.
Пример 1.5.
Адрес Число Комментарий
0808 3A ;трёхбайтная команда, выполняющая пересылку
0809 …01 ;в аккумулятор операнда из ячейки памяти
080A …0B ;с адресом 0B01 размещённым прямо в команде
0809 …01 ;в аккумулятор операнда из ячейки памяти
080A …0B ;с адресом 0B01 размещённым прямо в команде
Поскольку код операции всегда является первым байтом команд, постольку его ещё часто называют кодом команды.
Многобайтные числа в составе команды или в составе данных хранятся согласно следующему правилу.
Байты числа размещаются в последовательно расположенных ячейках памяти (адреса ячеек последовательно увеличиваются), причём сначала в младших адресах размещаются младшие байты, а затем в более старших адресах – более старшие байты числа. Адресом числа называют адрес самого младшего байта этого числа.
Например, трёхбайтное число 126A38 должно хранится в памяти по адресу 0B00 следующим образом:
0B00 38
0B01 6A
0B02 12
Представленная таким образом программа будет являться программой на языке машинных команд, поскольку такие команды могут быть непосредственно транслированы аппаратными средствами процессора.