
- •Оглавление
- •Общие сведения о микропроцессоре кр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.Контрольные вопросы
- •Литература
5.1.3.Деление чисел.
Деление двоичных чисел, как и чисел, представленных в любой другой системе счисления, основывается на последовательном вычитании делителя из делимого и остатков от деления. Однако двоичное деление реализуется проще, т. к. использование только двух цифр (0, 1) исключает в каждом цикле деления необходимость определения числа делителей, содержащихся в текущем значении делимого или остатка (достаточно только сравнить их). Схема алгоритма деления однобайтных чисел (целых без знака) со сдвигом делимого (или остатков) влево приведена ниже, на Рис. 5 .5. Реализует данный алгоритм программа Прогр. 5 .10.
При делении делитель вычитается из все большей части делимого и после каждого вычитания анализируется бит заема (C). Если делитель больше той части делимого, из которой он вычитается, то C = 1. В этом случае цифра частного равна нулю, и делитель суммируется с результатом вычитания для восстановления исходной части делимого (остатка). Если при вычитании заема не возникает (C = 0), то цифра частного равна 1, а результат используется как новое промежуточное делимое.
Входными параметрами данной программы являются делимое (в регистре Е) и делитель (в регистре D), а выходными параметрами – частное (в регистре Н) и остаток (в регистре С). Перед началом выполнения программы признак переноса C должен быть сброшен.
Прогр. 5.10. Программа деления двоичных чисел.
|
MVI E, A9h |
;Загрузка в E делимого. |
|
MVI D, 54h |
;Загрузка в D делителя. |
|
LXI H, 0008h |
;Загрузить счетчик битов (L) и очистить регистр H. |
|
MVI C, 00h |
;Очистить регистр промежуточного делимого. |
LAB_1 : |
MOV A, E |
;Загрузить делимое в Акк. |
|
RAL |
;Сдвинуть старший бит в разряд С. |
|
MOV E, A |
;Возвратить делимое в регистр E. |
|
MOV A, C |
;В Акк. промежуточное делимое из регистра С. |
|
RAL |
;Сдвинуть разряд С в младший бит Акк. |
|
SBB D |
;Вычесть из содержимого Акк. делитель с учетом заема. |
|
JNC LAB_2 |
;Если результат положительный, то идти на LAB_2 (C = 0). |
|
ADD D |
;Сложить содержимое регистра D с Акк. |
LAB_2 : |
MOV C, A |
;Возвратить промежуточное делимое в регистр С. |
|
CMC |
;Инвертировать разряд С. |
|
MOV A, H |
;Запись цифры частного. |
|
RAL |
|
|
MOV H, A |
|
|
DCR L |
;Проверены ли все 8 разрядов. |
|
JNZ LAB_1 |
;Если нет, продолжать. |
|
HLT |
;Выход из программы. |
Рис. 5.5. Алгоритм
программы деления двоичных чисел.