
- •Оглавление
- •Общие сведения о микропроцессоре кр580вм80/кр580вм80а (мп кр580) Цели и задачи практикума
- •Вводная информация
- •Структура мп кр580
- •Блок регистров.
- •Арифметическо-логическое устройство.
- •Структура памяти и форматы команд мп кр580
- •Справочная информация по микропроцессору мп кр580
- •Система команд кр580.
- •Коды команд мп кр580.
- •Лабораторная работа №1.Ознакомление с работой мп кр580 и работой эмулятора emКр580
- •1.1.Руководство пользования эмулятором emКр580
- •1.1.1.Текстовый редактор.
- •1.1.2.Синтаксис редактора.
- •1.1.3.Эмулятор программы.
- •1.2.Задания для самоподготовки
- •1.3.Задания к лабораторной работе
- •1.4.Содержание отчета
- •1.5.Контрольные вопросы
- •Лабораторная работа №2.Исследование системы команд мп кр580
- •2.1.Краткие сведения из теории
- •2.1.1.Способы адресации памяти.
- •2.1.2.Система команд микропроцессора.
- •2.1.2.1Команды пересылки данных.
- •2.1.2.2Арифметические и логические команды.
- •2.1.2.3Команды передачи управления.
- •2.1.2.4Специальные команды.
- •2.2.Задания для самоподготовки
- •2.3.Задания к лабораторной работе
- •2.4.Содержание отчета
- •2.5.Контрольные вопросы
- •Лабораторная работа №3.Подпрограммы и стек
- •3.1.Краткие сведения из теории
- •3.2.Задания для самоподготовки
- •3.3.Задания к лабораторной работе
- •3.4.Содержание отчета
- •3.5.Контрольные вопросы
- •Лабораторная работа №4.Ввод/вывод, маскирование данных и организация условных переходов
- •4.1.Краткие сведения из теории
- •4.1.1.Общие сведения об организации интерфейса ввода/вывода.
- •4.1.2.Маскирование данных.
- •4.1.3.Организация условных переходов.
- •4.2.Задания для самоподготовки
- •4.3.Задания к лабораторной работе
- •4.4.Содержание отчета
- •4.5.Контрольные вопросы
- •Лабораторная работа №5.Выполнение арифметических операций
- •5.1.Краткие сведения из теории
- •5.1.1.Сложение и вычитание.
- •5.1.2.Умножение чисел.
- •5.1.3.Деление чисел.
- •5.1.4.Вычисление специальных функций.
- •5.2.Задания для самоподготовки
- •5.3.Задания к лабораторной работе
- •5.4.Содержание отчета
- •5.5.Контрольные вопросы
- •Литература
4.5.Контрольные вопросы
Перечислить и охарактеризовать БИС, используемые при организации интерфейса ввода/вывода в МП-системах на основе процессора КР580ВМ80/КР580ВМ80А.
Указать достоинства и недостатки различных способов обмена информацией между МП и устройствами ввода/вывода (УВВ).
Режимы работы программируемого периферийного адаптера (ППА) К580ВВ55.
Режимы работы программируемого связного адаптера (ПСА) К580ВВ51.
Принцип действия функциональной схемы ввода/вывода, изображенной на Рис. 4 .3.
С помощью каких команд МП может осуществлять ввод/вывод информации?
Что такое и для чего предназначено маскирование данных.
Перечислить логические команды и команды условной передачи управления МП КР580.
По каким условиям записывается 1 в каждый из флагов регистра признаков МП?
Лабораторная работа №5.Выполнение арифметических операций
Цель работы: Изучение способов организации и исследование программ выполнения арифметических операций.
5.1.Краткие сведения из теории
Так как МП серии КР580 не имеет специальных команд для работы с числами с плавающей точкой, то при составлении программ для этого процессора, как правило, используется представление чисел с фиксированной точкой. Восьмиразрядное слово данных позволяет представить число, как двоичное число со знаком, имеющее значение от –128 до +127. При этом отрицательные числа представляются в дополнительном коде, а старший разряд числа используется как знаковый. Такое представление чисел не позволяет выполнять арифметические операции с использованием переноса при сложении и заема при вычитании. Число с фиксированной точкой можно представить также двоичными числами без знака, имеющими значения от 0 до 255.
Для МП БИС можно представить также числа в виде двоичного числа Binari-сoded-decimal (BCD), при котором каждый байт рассматривается как два полубайта, две тетрады, каждая из которых кодирует десятичную цифру. Такое представление позволяет закодировать 1 байт числа от 0 до 99.
Проведение арифметических операций сложения, вычитания, умножения, деления, вычисления специальных функций ниже рассмотрено на примерах.
5.1.1.Сложение и вычитание.
Программа Прогр. 5 .7 – это программа сложения массива однобайтных чисел (целых без знака) с получением двухбайтного результата. Слагаемые должны располагаться в последовательных адресах памяти, начиная с адреса 0100h. Результат сложения программы: старший байт – в ячейке памяти с адресом 0121h, младший – в в ячейке памяти с адресом 0120h. Алгоритм программы сложения состоит в том, что после представления каждого элемента массива определяется переполнение аккумулятора, и, если это имеет место, то содержимое регистра увеличивается на 1. Таким образом, за счет суммирования единиц переноса получается старший байт суммы.
Прогр. 5.7. Программа сложения массива однобайтных чисел с получением двухбайтного результата.
|
LXI H, 0100h |
;В HL адрес первого слагаемого (загрузка указателя). |
|
MVI B, 05h |
;В В количество слагаемых (загрузка счетчика). |
|
XRA A |
;Очистить Акк. и сбросить флаг переноса. |
|
MOV C, A |
;Очистить счетчик переносов. |
LAB_1 : |
ADD M |
;Прибавить к Акк. число из массива слагаемых. |
|
JNC LAB_2 |
;Если переноса нет, то идти на LAB_2. |
|
INR C |
;Увеличить С на 1. |
LAB_2 : |
INX H |
;Указать на адрес следующего слагаемого. |
|
DCR B |
;Уменьшить содержимое счетчика слагаемых. |
|
JNZ LAB_1 |
;Если слагаемые не все, то идти на LAB_1. |
|
LXI H, 0120h |
;В HL адрес младшего байта результата. |
|
MOV M, A |
;Акк. в ячейку памяти с адресом 0120h. |
|
INX H |
;В HL адрес старшего байта результата. |
|
MOV A, C |
;С в Акк. |
|
MOV M, A |
;Акк. в ячейку памяти с адресом 0121h. |
|
HLT |
;Выход из программы. |
Микро-ЭВМ может представить арифметические числа с двойной или большей длиной машинного слова. Так как МП имеет 8-разрядное АЛУ, то операции с такими числами должны производиться по байтам, начиная с младших байтов. Так операция сложения чисел 17F5 + 3411 будет производиться следующим образом:
Числа |
Младший байт |
Флаг С |
Старший байт |
17F5 |
11110101 |
|
00010111 |
+ |
+ |
|
+ |
3411 |
00010001 |
|
00110100 |
|
|
1 |
+ 1 |
4С06 |
00000110 |
|
01001100 |
Из приведенных примеров видно, что при суммировании (вычитании) младших байтов чисел можно применять команду ADD (SUB), а при суммировании (вычитании) остальных байтов чисел необходимо использовать команду ADC (SBB), которая будет учитывать состояние разряда С регистра признаков МП.
Программа Прогр. 5 .8 – это программа нахождения суммы чисел, имеющих одинаковую длину. Входные параметры программы: регистр С – длина чисел (в байтах), регистры H, L – адрес младшего байта 1-го слагаемого, регистры D, E – адрес младшего байта 2-го слагаемого. Каждое из чисел записывается в последовательных адресах памяти, начиная с адресов младших байтов. Результат заносится в область памяти, отведенную под 1-е слагаемое. Для получения программы нахождения разности чисел, имеющих одинаковую длину, достаточно заменить в строке 6 команду ADC на команду SBB. В этом случае 1-е слагаемое будет вычитаемым, а 2-е слагаемое – уменьшаемым.
Прогр. 5.8. Программа нахождения суммы чисел, имеющих одинаковую длину.
|
MVI C, 04h |
;Загрузить в C длину чисел в байтах. |
|
LXI H, 0100h |
;Загрузить в HL адрес младшего байта 1-го слагаемого. |
|
LXI D, 0110h |
;Загрузить в DE адрес младшего байта 2-го слагаемого. |
|
XRA A |
;Очистить Акк. и флаг С. |
LAB_1 : |
LDAX D |
;Записать в Акк. 2-е слагаемое. |
|
ADC M |
;Сложить Акк. с 1-м слагаемым (с учетом переноса). |
|
MOV M, A |
;Записать сумму на место 1-го слагаемого. |
|
INX H |
;Указать на след. байт 1-го слагаемого. |
|
INX D |
;Указать на след. байт 2-го слагаемого. |
|
DCR C |
;Уменьшение регистра С (счетчика длины числа). |
|
JNZ LAB_1 |
;Если байт не старший, то идти на LAB_1. |
|
HLT |
;Выход из программы. |