Составители:
39
4.4.5. Схема выполнения беззнакового деления div ab
ACC содержит 8-разрядное делимое, регистр B - делитель. Частное
формируется в ACC, остаток в B. Признаки С и OV в PSW сбрасываются.
Возможное переполнение при делении на 0 не контролируется.
Вычисления по следующей рекуррентной формуле [1] деления без вос-
становления остатка для дробных чисел – сначала определяется знак разности
2S
i
-A, остаток сохраняется, если знак положительный. S – делимое, А – дели-
тель, B=0.b
1
b
2
..bn – двоичное частное
(*) S
i+1
= 2S
i
-A и b
i
=1 , если 2S
i
-A >=0, где S
0
=S-делимое
S
i+1
= 2S
i
и b
i
=0 , если 2S
i
-A <0
Схема вычисления частного без восстановления остатка:
1 2n
, S S/B
b
i
- A
, А 2S(сдвиг влево)
Частное B совмещается с младшими разрядами 2n-разрядного делимого S.
Схема деления объединяется со схемой операции умножения.
В регистре АСС при выборке команды хранится делимое, в регистре В –
делитель. В начале операции осуществляется обмен данными Acc ←→ B,
делимое переписывается в регистр B, после этого делитель из Acc сохраняется
в рабочем регистре Wrk и ACC сбрасывается. В регистре Wrk1 организуется
счетчик циклов
S=00.ACC – начальное состояние 16-разрядного регистра дробного
делимого. В регистре Wrk записывается делитель.
Общая схема (диаграмма) деления в проекте после размещения
операндов на регистрах:
7 0 Acc[0] B[0]
ACC B srm=sl(Acc.B.bi)
7 0
7 Wrk 0
cw Wrk1+
7 Wrk1 0
Wrk1= (-8)
Если остаток S
i+1
=2S
i
-A положительный, то цифра bi=1 записывается при
сдвиге остатка влево в младший разряд регистра B. Если остаток отрицатель-
ный, то сохраняется предыдущее значение положительного остатка и bi=0. Ес-
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »