лабораторные работы / Выполнение операций умножения и деления
.docМинистерство образования РФ
Саратовский Государственный Технический Университет
Балаковский Институт Техники,
Технологии и Управления
Инженерно-строительный факультет
Кафедра «Управление и информатика
в технических системах»
ЛАБОРАТОРНАЯ РАБОТА № 4
по дисциплине «Микропроцессорные устройства систем управления»
Выполнение операций умножения и деления
Выполнил студент гр. УИТ-51
Печавин А. В.
Сурков К. А.
Янгалычин Р. Р.
Шпак М.
Смирнов Е. Е.
Принял преподаватель
Мефедова Ю. А.
Балаково 2005
Цель работы: Изучение программных алгоритмов выполнения операций умножения и деления и их исследование.
-
Программа умножения двух однобайтных чисел методом многократного сложения, блок-схема выполнения программы.
Блок-схема
Запись в счетчик В множителя из адреса
0В01
Обнуление регистров В и С
Запись в А множимого из адреса 0В00
Сложение А и D
Запись значения из А в D
no
yes
Инкрементирование C
Cброс CY
Декрементирование счетчика В
no
yes
Окончание программы
Код
0800 |
3A |
LDA 0B01 |
Загрузка аккумулятора |
0801 |
01 |
|
по адресу 0В01 |
0802 |
0B |
|
|
0803 |
47 |
MOV B, A |
Из А в В |
0804 |
3E |
MVI A, 00 |
Обнуление аккумулятора |
0805 |
00 |
|
|
0806 |
57 |
MOV D, A |
Обнуление D |
0807 |
4F |
MOV C, A |
Обнуление С |
0808 |
3A |
LDA 0B00 |
Загрузка аккумулятора |
0809 |
00 |
|
по адресу 0B00 |
080А |
0B |
|
|
080В |
82 |
ADD D |
Сложение А и D |
080С |
57 |
MOV D, A |
Запись результата в D |
080D |
D2 |
JNC 0811 |
Переход на 0811, если не перенос |
080E |
11 |
|
|
080F |
08 |
|
|
0810 |
0C |
INR C |
Инкрементирование С |
0811 |
A7 |
ANA A |
Сброс флага CY |
0812 |
05 |
DCR B |
Декрементирование счетчика |
0813 |
C2 |
JNZ 0808 |
Переход на 0808 если В не равен 0 |
0814 |
08 |
|
|
0815 |
08 |
|
|
0816 |
CF |
RST |
Окончание программы |
Комментарии:
В регистре С – старшая часть произведения.
В регистре D – младшая часть произведения.
-
Программа деления двух однобайтных чисел.
Блок-схема
Запись в В делителя из адреса 0В01
Запись в А делимого из адреса 0B00
Обнуление регистров С, D,
E
А - D
Запись значения из А в D
no
yes
C = A + B
Инкрементирование Е, Запись в А из D
Декрементирование счетчика H
no
yes
Окончание программы
Код
0800 |
3A |
LDA 0B01 |
Загрузка аккумулятора |
0801 |
01 |
|
по адресу 0В01 |
0802 |
0B |
|
|
0803 |
47 |
MOV B, A |
Из А в В |
0804 |
67 |
MOV H, A |
Из А в H |
0805 |
3E |
MVI 00 |
Обнуление аккумулятора |
0806 |
00 |
|
|
0807 |
57 |
MOV D, A |
Обнуление D |
0808 |
4F |
MOV C, A |
Обнуление С |
0809 |
6F |
MOV E, A |
Обнуление E |
080А |
3A |
LDA 0B00 |
Загрузка аккумулятора |
080В |
00 |
|
по адресу 0B00 |
080С |
0B |
|
|
080D |
90 |
SUB B |
A = A – B |
080E |
57 |
MOV D, A |
Из А в D |
080F |
D2 |
JNC 0814 |
Переход на 0814, если не перенос |
0810 |
14 |
|
|
0811 |
08 |
|
|
0812 |
80 |
ADD B |
Сложение В и А |
0813 |
4F |
MOV C, A |
Из A в C |
0814 |
7A |
MOV А, D |
Из D в A |
0815 |
1D |
DCR E |
Декрементирование Е |
0816 |
24 |
INR H |
Инкрементирование H |
0817 |
C2 |
JNZ 080D |
Переход на 080D если H не равен 0 |
0818 |
0D |
|
|
0819 |
08 |
|
|
081A |
CF |
RST |
Окончание программы |
Комментарии:
В регистре E – целая часть частного.
В регистре D – остаток.
Выводы: в процессе выполнения лабораторной работы были усвоены основные принципы реализации вычисления операций умножения и деления с использованием микропроцессора КР580.
Правильность работы составленных программ подтвердилась при проверке на КР580.