- •Часть II
- •4. Реализация простых операций
- •4.1.Упровление входными и выходными регистрами
- •4.2. Управление микропроцессором
- •II. Эксперементальная часть
- •Реализация умножения и деления двоичных чисел на микропроцессорной установке.
- •5.3.1 Алгоритм операции деления
- •5.3.4. Микропрограммная реализация деления
- •Лабораторная работа № 2
5.3.1 Алгоритм операции деления
Деление двоичных чисел осуществляется путём ряда вычитаний и сдвигов. Пусть необходимо вычислить D=X:Y. Для этого старшие разряды Хст делимого Х следует поместить в РР, а младшие разряды Хмл – в ДР. Делитель У подается на входные шины (ШВх) микропроцессора со входного РЕГИСТРА ДАННЫХ при микрокомандном способе операции деления или из ЗУ – при микропрограммном способе. Старшие разряды делимого Х и делителя У являются значимыми. Чтобы не переполнялись РР и ДР, должно выполнятся неравенство У > Хст. После загрузки Х в РР, ДР выполняется начальный сдвиг их содержимого влево на один разряд микрокомандой (PP,ДР)СЦЛРР,ДР.
Процедура деления состоит в следующем.
В каждом цикле Хст (содержимое РР) сравнивается с У(ШВх), для чего используется микрокоманда РР-ШвхШВых. Результаты сравнения можно наблюдать на выходном гнезде МП ПЕРЕНОС АЛУ(ШВых). Если РР<ШВх, то ПВых=0. В этом случае необходимо выполнить циклический сдвиг РР, ДР влево с помощью микрокоманды (PP,ДР)СЦЛРР,ДР. При РР>ШВх получим ПВых=1. Поэтому осуществляется циклический сдвиг влево разности РР-ШВх, размещенной в РР, с содержимым ДР (остатка) путём введения МК (РР-ШВх,ДР)СЦЛРР,ДР, а затем с ШВх в младший разряд ДР заносится единица с помощью МК ШВхVДРДР, то по окончании деления (после 8 циклов) частное D окажется в ДР, а остаток - в РР.
Иллюстрация алгоритма
Принимаем X=0000110011001100 (3276), У=00111111 (63), тогда D=0000000000110100 (остаток равен нулю). Последовательность действий, приводящих к указанному ответу D, сведена в табл. 5.5.
Табл. 5.5
-
i
M0i
РР ДР
ПВых
М0i+1
00001100 11001100
Сдв.
Сдв.0
00011001 10011000
Сравн.1
1
Сравн.1
11000001
11011010
0
Сдв.1
Сдв.1
00110011 00110000
2
Сравн.2
11000001
11110100
0
Сдв.2
Сдв.2
01100110 01100000
3
Сравн.3
11000001
100100111
1
Выч.+Сдв.3+1
Выч.+Сдв.3+1
01001110 11000001
4
Срвн.4
11000001
100001111
1
Выч.+Сдв.4+1
Выч.+Сдв.4+1
00011111 10000011
5
Сравн.5
11000001
11100000
0
Сдв.5
Сдв.5
00111111 00000110
6
Сравн.6
11000001
100000000
1
Выч.+Сдв.6+1
Выч.+Сдв.6+1
00000000 00001101
7
Сравн.7
11000001
11000001
0
Сдв.7
Сдв.7
00000000 00011010
8
Сравн.8
11000001
11000001
0
Сдв.8
Сдв.8
00000000 00110100
Табл. 5.7
Микрокомандная реализация операции деления
Алгоритм микрокомандного способа деления приведён в табл. 5.6; особенности его реализации показаны на примере в табл. 5.7.
Табл. 5.6
Примечание: операнды на ШВх подаются с выходного РД вместе со следующей МК.