
- •Основы микропроцессорной техники
- •Введение
- •1. Система команд микропроцессора 8080 Представление команд в числовой форме
- •Мнемоническое представление команд Ассемблер
- •Директивы Ассемблера процессора 8080
- •Методы адресации операндов команд
- •Биты признаков
- •Общее представление команд
- •Команды пересылок
- •Однобайтные пересылки
- •Двухбайтные пересылки
- •Команды передачи управления
- •Команды безусловных переходов
- •Команды условных переходов
- •Команды организации подпрограмм
- •Команды безусловных вызовов и возврата
- •Команды условных вызовов и возврата
- •Команды арифметических, логических и сдвиговых операций
- •Команды сложения
- •Команды вычитания
- •Команды логических операций
- •Команды сравнения
- •Команды сдвига
- •Специальные арифметическо-логические команды
- •Команды управления стеком
- •Команды ввода, вывода и управления состоянием процессора Команды ввода и вывода
- •Команды управления прерываниями
- •Команда перевода процессора в состояние останова
- •Учебная микро-эвм умк-80
- •Управление микро-эвм средствами Монитора
- •Чтение и модификация содержимого памяти хххх
- •Чтение и модификация содержимого регистров
- •Запуск программы пользователя
- •Отражение типа машинного цикла через слово состояния
- •Пошаговые режимы
- •Порядок выполнения работы Заполнение памяти средствами Монитора
- •Определение исходного положения области стека
- •Ввод программы средствами Монитора
- •Лабораторная работа № 1.2 Учебная микро-эвм умпк-80
- •Краткие сведения из теории Назначение умпк-80
- •Структура умпк-80 и распределения адресного пространства
- •Управление микро-эвм средствами Монитора
- •Тестирование микро-эвм и начальная установка
- •Порядок выполнения работы Исследование порядка включения умпк-80
- •Исследование содержимого памяти
- •Запись числа в память умпк-80
- •Запись числа в программно-доступные регистры
- •Запуск программы
- •Контроль выполнения команд программы
- •Содержание отчёта
- •Контрольные вопросы
- •Лабораторная работа № 2 Отдельные команды, простые программы
- •Краткие сведения из теории Типы команд
- •Форматы команд
- •Способы адресации операндов
- •Признаки результатов операций
- •Представление программы
- •Порядок выполнения работы Исследование отдельных команд арифметических и логических операций
- •Исследование команд пересылок и способов адресации операндов
- •Исследование команд арифметического сложения
- •Исследование операций сравнения однобайтных чисел
- •Содержание отчёта
- •Контрольные вопросы
- •Библиографический список
Признаки результатов операций
При выполнении арифметических и логических операций с однобайтными двоичными операндами процессор имеет возможность не только получить байт результата в своем аккумуляторе, но и указать на некоторые признаки результата операции. Это реализовано через установку битов регистра признаков процессора. Его формат показан в табл. 1.4, а значения отдельных битов признаков – в табл. 1.5.
Биты регистра признаков устанавливаются командами арифметических, логических и сдвиговых операций. Они могут быть использованы другими командами в качестве объекта анализа или анализируемого условия. Анализировать состояния битов признаков могут команды условных переходов, условных вызовов подпрограмм или условных возвратов из подпрограмм. Кроме того, бит CY может принимать участие в арифметических, логических и сдвиговых операциях вместе с другими операндами.
Представление программы
Исходный текст программы разрабатывается на основе её алгоритма. Команды исходного текста пишутся сначала в форме мнемокодов. Например, простейшая программа 2.3, извлекающая число из ячейки памяти с адресом 0B00h, инвертирующую его и записывающая результат в память по адресу 0B01h.
; Программа 2.3. (в мнемокодах)
; Инвертирование однобайтного числа
;Входной параметр: M(0B00) – исходное число
;Выходной параметр: M(0B01) – результат инвертирования
.org 0800h ; Область программы
LDA 0B00h ; прочитать число из памяти с адресом 0B00 в ; аккумулятор процессора (A)
CMA ; инвертировать число в A
STA 0B01h ; записать число из A в память по адресу 0B01
RST 1 ; вернуться в монитор
;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться ;командой RST 7.
.org 0B00h ;Область данных
.db 0E5h ;исходный байт
.db 00 ;результат
.end
Затем, для записи программы в оперативную память, необходимо перевести мнемокоды команд в машинные коды, то есть выполнить трансляцию программы. Так как команды в программе могут быть одно-, двух- или трёхбайтные, то они должны занимать соответственно одну, две или три ячейки памяти.
Программа 2.3 (размещение по адресам памяти)
Инвертирование однобайтного числа
Входной параметр: M(0B00) – исходное число
Выходной параметр: M(0B01) – результат инвертирования
Адрес Число Комментарий
0800 3A ;код команды LDA
0801 00 ;младший байт адреса команды LDA
0802 0B ;старший байт адреса команды LDA
0803 2F ;код команды CMA
0804 32 ;код команды STA
0805 01 ;младший байт адреса команды STA
0806 0B ;старший байт адреса команды STA
0807 CF ;код команды RST 1*
* в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться командой RST 7, имеющей код FF.
Запись многобайтных команд удобно производить в более компактной и удобной для анализа форме – одной строкой. В начале строки указывается адрес первого байта такой команды и при этом понимается, что, в зависимости от длины, байты команды в памяти будут занимать от одной до трёх последовательно расположенных ячеек.
; Программа 2.3 (в мнемокодах и кодах)
; Инвертирование однобайтного числа
;Входной параметр: M(0B00) – исходное число
;Выходной параметр: M(0B01) – результат инвертирования
.org 0800h ; Область программы
0800 3A 00 0B LDA 0B00h ;AM(0B00)
0803 2F CMA ; инвертировать число в A
0804 32 01 0B STA 0B01h ;AM(0B01)
0807 CF RST 1 ;возврат в Монитор
;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться ;командой RST 7.
.org 0B00h ;Область данных
.db 0E5h ;исходный байт
.db 00 ;результат
.end
В программе 2.3 для определения операнда в памяти используется прямой метод адресации. В следующей программе 2.4 выполняются те же действия над исходным операндом, но для его определения в памяти применён уже косвенный метод адресации.
; Программа 2.4.
; Инвертирование однобайтного числа
;Входной параметр: M(0B00) – исходное число
;Выходной параметр: M(0B01) – результат инвертирования
.org 0800h ; Область программы
LXI H,0B00h ; HL0B00
MOV A,M ; AM(HL)
CMA ; инвертировать число в A
INX H ; HLHL+1
MOV M,A ; AM(HL)
RST 1 ; вернуться в монитор
;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться ;командой RST 7.
.org 0B00h ;Область данных
.db 0E5h ;исходный байт
.db 00 ;результат
.end