Программы умножения двоичных чисел. Сдвиг множителя и текущей суммы частичных. Обнуление текущей суммы частичных произведений (ЧП), страница 6

;**************************  D16_16AF ***************************

; Подпрограмма деления двоичных беззнаковых дробных чисел

; с фиксированной перед старшим разрядом запятой

; формата ( ,16):( ,16)=( ,16), где ( ,16)=(СТБ,МЛБ).  

; Входные параметры: (D,E) - адрес делимого в памяти,

;                                      (H,L) - адрес делителя в памяти.

; Выходные параметры: (В,С) - частное,

;                                        (CY) - признак переполнения частного.

; Используется подпрограмма D16_16А.

;****************************************************************

D16_16AF:

PUSH   D

; Сохранение адреса делимого

PUSH   H

; Сохранение адреса делителя

; Пересылка делителя из памяти в регистры (В,С)

MOV   B, M

INX   H

MOV   C, M

; (В,С) - делитель

; Пересылка делимого из памяти в регистры (H,L)

XCHG

; (H,L) - адрес делимого

MOV   D, M

INX   H

MOV   E, M

XCHG

; (H,L) -  делимое

; Проверка переполнения частного (частное  >1 ?)

PUSH   H

; Сохранение  делимого

DAD   B

; (H,L) - разность делимого и делителя

JC   PER1

; Если частное  >1

POP   H

; Восстановление делимого

JMP   PER2

PER1:

INX   SP

INX   SP

; Баланс стека

PER2:

PUSH   PSW

; Сохранение признака переполнения

; Деление целых двоичных чисел формата 16:16=16

CALL  D16_16A

; (D,E) - частное

MOV   B, D

MOV   C, E

; (В,С) - частное

; Коррекция частного при переполнении

POP   PSW

; Восстановление признака

MVI   D, 0

; (D)=0 - признак непереполнения

JNC   PER3

; Если нет переполнения

; Сдвиг частного вправо

MOV   A, B

RAR

MOV   B, A

MOV   A, C

RAR

MOV   C, A

INR   D

; (D)=1 - признак переполнения

PER3:

POP   PSW

; Восстановление признаков

MOV   A, D

; (А) - признак переполнения

RAR

; Проявление признака CY

POP   H

; Восстановление адреса делителя

POP   D

; Восстановление адреса делимого

RET

; (CY)=1, если переполнение частного

Программы преобразования представления чисел