
- •Основы микропроцессорной техники
- •Введение
- •1. Система команд микропроцессора 8080 Представление команд в числовой форме
- •Мнемоническое представление команд Ассемблер
- •Директивы Ассемблера процессора 8080
- •Методы адресации операндов команд
- •Биты признаков
- •Общее представление команд
- •Команды пересылок
- •Однобайтные пересылки
- •Двухбайтные пересылки
- •Команды передачи управления
- •Команды безусловных переходов
- •Команды условных переходов
- •Команды организации подпрограмм
- •Команды безусловных вызовов и возврата
- •Команды условных вызовов и возврата
- •Команды арифметических, логических и сдвиговых операций
- •Команды сложения
- •Команды вычитания
- •Команды логических операций
- •Команды сравнения
- •Команды сдвига
- •Специальные арифметическо-логические команды
- •Команды управления стеком
- •Команды ввода, вывода и управления состоянием процессора Команды ввода и вывода
- •Команды управления прерываниями
- •Команда перевода процессора в состояние останова
- •Учебная микро-эвм умк-80
- •Управление микро-эвм средствами Монитора
- •Чтение и модификация содержимого памяти хххх
- •Чтение и модификация содержимого регистров
- •Запуск программы пользователя
- •Отражение типа машинного цикла через слово состояния
- •Пошаговые режимы
- •Порядок выполнения работы Заполнение памяти средствами Монитора
- •Определение исходного положения области стека
- •Ввод программы средствами Монитора
- •Лабораторная работа № 1.2 Учебная микро-эвм умпк-80
- •Краткие сведения из теории Назначение умпк-80
- •Структура умпк-80 и распределения адресного пространства
- •Управление микро-эвм средствами Монитора
- •Тестирование микро-эвм и начальная установка
- •Порядок выполнения работы Исследование порядка включения умпк-80
- •Исследование содержимого памяти
- •Запись числа в память умпк-80
- •Запись числа в программно-доступные регистры
- •Запуск программы
- •Контроль выполнения команд программы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа № 2 Отдельные команды, простые программы
- •Краткие сведения из теории Типы команд
- •Форматы команд
- •Способы адресации операндов
- •Признаки результатов операций
- •Представление программы
- •Порядок выполнения работы Исследование отдельных команд арифметических и логических операций
- •3Результаты исследования команд арифметических и логических операций
- •Исследование команд пересылок и способов адресации операндов
- •Исследование команд арифметического сложения
- •Исследование операций сравнения однобайтных чисел
- •Содержание отчёта
- •Контрольные вопросы
- •Библиографический список
Мнемоническое представление команд Ассемблер
Язык машинных кодов понятен процессору, но неудобен для работы программисту поскольку команды трудно запоминаются и читаются. Гораздо удобнее символьное представление команд, когда символы команды напоминают о её действиях, а двухбайтные операнды и адреса в командах пишутся в нормальном виде (начиная слева, от старших байт). Такая форма представления команд используется в языке Ассемблер. Символы, представляющие команды, называются мнемокодами. Характерной особенностью языка Ассемблер, определяющей его принадлежность в языкам нижнего уровня, является то, что каждой команде Ассемблера соответствует одна и только одна машинная команда.
Пример 1.6
Адрес Число Мнемокод
0800 78 MOV A,B
MOV – сокращёние от MOVe (переместить). После пробела указываются операнды: сначала – операнд-приёмник (регистр A), а затем – операнд-источник (регистр B). Операнды разделяются друг от друга запятой.
Пример 1.7
Адрес Число Мнемокод
0801 06 4С MVI B,4C
MVI – сокращёние от MOVe Immediate (переместить непосредственно). После пробела указываются операнды: сначала – операнд-приёмник (регистр B), а затем – операнд-источник (число 4C).
Пример 1.8
Адрес Число Мнемокод
0803 D3 F0 OUT F0
OUT – сокращёние от OUTput (вывести). После пробела указывается операнд-приёмник через адрес порта вывода F0. Источник (выводимый байт) для команд вывода всегда находится в аккумуляторе, и поэтому сведений о нём в мнемокоде нет.
Пример 1.9
Адрес Число Мнемокод
0805 32 01 0B STA 0B01
STA – сокращёние от STore A direct (записать аккумулятор прямым методом адресации). После пробела указывается операнд-приёмник через определение его адреса в памяти (0B01). Источник в команде такого типа всегда находится в аккумуляторе, и поэтому сведений о нём в мнемокоде нет.
Программист пишет программу из процессорных команд сначала в удобной для него форме – на языке Ассемблера. При этом ему не обязательно сразу определять конкретные адреса памяти для размещения своей программы и её данных. Можно указать их в виде переменных с присвоением специальных имён.
Пример 1.10
Программа инвертирования чисел, в количестве Cnt_1, размещённых в последовательно расположенных ячейках памяти, начиная с адреса Adr_dat, может быть представлена на Ассемблере следующим образом
Метка Мнемокод Комментарий
Beg: LXI H,Adr_dat ;записать в HL число Adr_dat
MVI B,Cnt_1 ;записать в B число Cnt_1
M00: MOV A,M ; принять очередной байт из памяти в A
CMA ; проинвертировать биты байта в A
MOV M,A ; проинвертированный байт записать на место
INX H ; инкрементировать указатель ячеек в HL
DCR B ; декрементировать счётчик байтов в B
JNZ M00 ; проверить завершение счёта и перейти к M00
; когда счёт байтов не завершён
HLT ; когда счёт байтов завершён – останов
Затем программист решает какое место в памяти займут программа и её данные. После этого выполняется трансляция исходной программы – преобразование мнемокодов в соответствующие числовые коды команд, то есть преобразование ассемблерных команд в машинные команды.
Если выбраны Beg=0800, Adr_dat=0B00, Cnt_1=08, то оттранслированная программа будет иметь следующий вид
Адрес Число Метка Мнемокод Комментарий
0800 21 00 0B Beg: LXI H,0B00
0803 06 08 MVI B,08
0805 7E M00: MOV A,M
0806 2F CMA
0807 77 MOV M,A
0808 23 INX H
0809 05 DCR B
080A C2 05 08 JNZ M00
080D 76 HLT
Трансляция ассемблерной программы может быть выполнена программистом вручную при помощи справочных таблиц с мнемониками и кодами команд. Если в подготовке программ для процессора 8080, в качестве средства автоматизации программирования, применяется компьютер, то трансляция также может быть выполнена специальной компьютерной программой называемой транслятором Ассемблера или просто Ассемблером. Программист подготавливает исходный текст в таком виде, который требует транслятор. Программа Ассемблер предполагает определённый формат представления исходной программы, а также – наличие в исходном тексте программы дополнительных команд, управляющих процессом трансляции, но не транслируемых в выходной листинг (в отличие от мнемокодов). Они именуются директивами Ассемблера.