
Микропроцессорные системы (УМКдляАИТ) / МетодУказания / Лаб. 1-5,6,7,7а,8,9,10 / Лаб4и5
.doc
ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ
1. Изучите арифметические команды МП КР580ВМ80 [4, 6, 7, 8, 9]
2. Ознакомьтесь с правилами выполнения команды DАА – десятичной коррекции аккумулятора.
3. Изучите программы 16 – 19. Рассмотрите результаты выполнения каждой программы на конкретных числовых примерах.
4. Определите время выполнения программы умножения и деления восьмиразрядных чисел.
5. Составьте программу для исследования результата перемножения двух чисел на основе подпрограммы 18.
6. Разработайте программу сложения двух 8-разрядных двоично-десятичных чисел с получением результата в ячейке памяти. Слагаемые разместите в ячейках памяти.
ЗАДАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ
Задание 1. Исследовать программу сложения однобайтных чисел с получением двухбайтного результата. Порядок выполнения:
1. Ввести в микроЭВМ программу 16.
2. Записать в память последовательность из пяти чисел, начиная с адреса 8600.
3. Выполнить программу и проверить результаты по содержанию регистров С и А.
4. Изменить программу 16 так, чтобы результат выполнения записывался по адресу 8606 и 8607. Проверить результат выполнения этой программы.
5. Изменить в программе указатель количества слагаемых в сумме и выполнить программу повторно.
Задание 2. Исследовать программу вычитания двух чисел, имеющих одинаковую разрядность. Порядок выполнения:
1. Ввести программу 17 в микроЭВМ.
2. Записать в регистры D, Е и Н, L соответственно начальные адреса младших байтов уменьшаемого и вычитаемого.
3. Записать уменьшаемое и вычитаемое побайтно по адресам, начиная с адресов, указанных в регистрах Н,L и D,Е.
4. Записать в регистр С длину числа в байтах. Для первого
случая записать в регистр С число 01 (рассматривается вычитание двух 8-разрядных чисел).
5. Запустить программу 17 в пошаговом режиме и исследовать результат ее выполнения.
6. Запустить программу 17 в режиме прогон, предварительно заменив команду HLT на команду RST4.
7. Изменить числа, записанные по адресам, указанным в регистрах Н, L и D, Е, так, чтобы уменьшаемое было меньше вычитаемого. Осуществить исследование выполнения программы.
8. Исследовать в аналогичной последовательности результат вычитания двухбайтных чисел.
Задание 3. Исследовать программу умножения двух 8-разрядных чисел с получением 16-разрядного результата.
Порядок выполнения:
1. Ввести в микроЭВМ программу, разработанную в п. 6 задания для домашней подготовки.
2. Осуществить пуск программы и исследовать ее выполнение.
Задание 4. Исследовать программу деления двух 8-разрядных чисел.
Порядок выполнения:
1. Ввести в микроЭВМ программу 19.
2. Записать в регистры Ε и D соответственно делимое и делитель.
3. Осуществить пуск программы и проверить результат деления двух чисел по содержимому регистров Η и С.
Задание 5. Исследовать программу сложения двух 8-разрядных чисел с получением результата в двоично-десятичном коде. Порядок выполнения:
1. Ввести в микроЭВМ программу, разработанную при выполнении п. 6 задания для домашней подготовки.
2. Выполнить и исследовать программу сложения следующих чисел: 33+25; 38+26; 97+26.
3. Заменить в разработанной программе операцию сложения на операцию вычитания двух чисел. Проверить возможность осуществления десятичной коррекции числа аккумулятора после команды вычитания.
СОДЕРЖАНИЕ ОТЧЕТА
Отчет должен содержать:
1. Полный перечень арифметических команд МП КР580ВМ80.
2. Программу сложения двух 8-разрядных чисел с получением результата в двоично-десятичном коде, разработанную в п. 6 задания для домашней подготовки.
3. Программу перемножения двух 8-разрядных чисел, разработанную в п. 5 задания для домашней подготовки.
4. Видоизмененную программу 17, исследованную в задании 2.
5. Результаты выполнения арифметических операций по всем заданиям.
ЗАДАНИЯ ДЛЯ САМОПРОВЕРКИ
1. Какие команды арифметических операций выполняет МП К580ИК80 ?
2. После каких команд можно осуществить десятичную коррекцию числа аккумулятора (выполнять команду DАА) ?
3. Сформулируйте правило выполнения МП команды DАА.
4. Поясните алгоритмы работы подпрограмм умножения и деления чисел.
5. Как оценить время выполнения программ умножения и деления .
Литература для подготовки [1, 2, 4, 5, 6 ].
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Микропроцессоры. В 3-х кн. Кн. 1, Архитектура и проектирование микроЭВМ. Организация вычислительных процессов / Под ред. .Л. Н. Преснухина. М.: Высшая школа, 1986. 495 с.
2. Каган Б.М., Сташин В.В. Основы проектирования микропроцессорных устройств автоматики. М.: Энергоатомиздат, 1987. 304 с.
3. Самофалов К.Г., Викторов О.В., Кузняк А.К. Микропроцессоры. Библиотека инженера. Киев: Техника, 1986. 277 с.
4. Григорьев В.Л. Программное обеспечение микропроцессорных систем. М.: Энергоатомиздат, 1983. 208 с.
5. Губин В.А. МикроЭВМ "Исеть" на основе микропроцессора КР580ИК80А. Принципы организации и основы программирования: Методические указания к лабораторным работам. Свердловск: УПИ, 1987. 32 с. _
6. Микропроцессоры. В 3-х кн. Кн. 3. Средства отладки, лабораторный практикум и задачник Под ред. Л. Н. Преснухина. М.: Высшая школа, 1986. 361 с.
7. Токхайм Р. Микропроцессоры: Курс и упражнения: Пер. с англ. / Под ред. В. Н. Грасевича. М.: Энергоатомиздат, 1987. 336 с.
8. Мокрецов В.П. Лабораторный практикум на учебной микро-ЭВМ "УМК": Методические указания к лабораторным работам. Свердловск: УПИ, Ι988. 39 с.
9. Калабеков В.А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учебное пособие для вузов. М.: Радио и связь, 1988. 368 с.
ПРИЛОЖЕНИЕ
Система команд микропроцессора KP580ИK80A
000 010 100 110
|
7 0 7 0
|
001 011 101 111
|
|
В |
С |
|
|
D |
Е |
|
|
Н |
L |
|
|
М |
А |
|
В регистре F запоминаются следующие признаки:
-
7 6
5 4 3 2
1 0
S
Z
0
АС
0
Р
1
S – признак отрицательного знака результата,
Z – признак нулевого результата, АС - признак переноса из 3 в 4
разряд,
Р – признак четности числа единиц результата,
15 0 |
PC |
SP |
7 0 |
F |
Значения признаков результата вычисляются по следующим правилам:
если X7 = 1, то S : = 1 , иначе S : = 0;
если X7 v X6 v ... v Х1 v Х0 = 0 , то Z : = 1, иначе Z : = 0; если был перенос из разряда 3 в 4, то АС : = 1 , иначе AC : = 0;
если X7 X6 ... Х1 Х0 = 0, то Р: = 1 , иначе P : = 0);
если был перенос из разряда 7 или заем из 8 , то CY: = 1, иначе CY: = 0.
Пояснение к таблицам. Таблицы содержат определение и ассемблерную мнемонику команд, длины команд в байтах, продолжительность исполнения команд в тактах и циклах, номенклатуру вычисляющих признаков результата. В таблицах используются следующие обозначения:
r, rd, rs - имена РОН (А, В, C, D, Ε, Η, L);
d d d, s s s - двоичные кода номеров РОН (S- источник, d - приемник);
rp - имя старшего регистра регистровой пары ВС, DЕ, HL;
d d, s s - двоичные коды регистровых пар:
r p
|
B |
D |
H |
|
d d, s s
|
00 |
|
01 |
10 |
Μ - ячейка памяти, адрес которой находится в паре HL;
b2, b3 - значения второго и третьего байтов команды. В 2-байтовых командах b2 представляет непосредственный операнд или адрес порта ввода-вывода. В 3-байтовых командах b2, b3- соответственно младший и старший байты 16-разрядного операнда или 16-разрядного адреса;
con - часть мнемоники команды, определяющая условие передачи управления, вызова и возврата из подпрограммы. В командах 64, 66, 68 con заменяется на NZ, Z, NС, С, Р0, ΡΕ, Ρ или М;
ССС - двоичный код условия передачи управления:
con
|
ССС
|
Условие передачи управления
|
|
NZ
|
000
|
если результат ненулевой,
|
т.е. бит Ζ = 0
|
Ζ |
001
|
если результат нулевой,
|
т.е. бит Ζ = 1
|
NС |
010
|
если не было переноса / заема,
|
т.е. бит СУ = 0
|
C |
011
|
если был перенос / заем,
|
т.е. бит СУ = 1
|
P0
|
100
|
если результат нечетный,
|
т.е. бит Ρ = 0
|
РЕ
|
101
|
если результат четный,
|
т.е. бит Ρ = 1 |
Ρ
|
110
|
если результат положительный,
|
т.е. бит S = 1 |
Μ
|
111
|
если результат отрицательный,
|
т.е. бит S = 1 |
n, NNN - номер запроса прерывания и двоичный код запроса. В зависимости от n (n = 0, 1, ... , 7) команда RST n передает управление соответственно по адресу 0000, 0008, 0010, 0018, 0020, 0028, 0030 или 0038 (16-ричная с/с);
PSW = (А) (F) - 16-разрядное слово, характеризующее текущее состояние процессора. В старшем байте - значение аккумулятора, в младшем - значение регистра признаков.
Спецификация признаков результата: после исполнения команда данный признак может измениться (+), не изменяется (-), принимает значение 0 или 1.
Команда DАА предназначена для автоматической коррекции результата сложения командами 23 ... 28 двоично-десятичных операндов на двоичном сумматоре с целью получения правильной 2-разрядной двоично-десятичной суммы. Команда DАА использует биты CY и АС. Коррекция происходит следующим образом:
а) если мл. тетрада в аккумуляторе больше 9 или если бит АС = 1, то к аккумулятору прибавляется код 0000 0110. Бит CY при этом не сбрасывается, но может установиться;
б) если ст. тетрада в аккумуляторе больше 9 или если бит CY = 1, то к аккумулятору прибавляется код 0110 0000. Бит CY при этом не сбрасывается, но может установиться.
В обзорной таблице команд приведена мнемоника, структура всех команд и соответствующие им 16-ричные коды первого байта. Примеры:
код В5 соответствует команде ORA L,
команда MVI А, ## имеет код операции ЗЕ.
Кодирование чисел в системах с основанием 10, 2, 16
x10 |
x2 |
x16 |
x10 |
x2 |
x16 |
0
|
0000
|
0
|
8
|
1000
|
8
|
1
|
0001
|
1
|
9
|
1001
|
9
|
2
|
0010
|
2
|
10
|
1010
|
А
|
3
|
0011
|
3
|
11
|
1011
|
В
|
4
|
0100
|
4
|
12
|
1100 |
С
|
5 |
0101
|
5
|
13
|
1101 |
D
|
6
|
0110
|
6
|
14
|
1110 |
Ε |
7 |
0111 |
7 |
15 |
1111 |
F |