;*************************** D32_16 **************************** |
||
; Подпрограмма деления целых двоичных чисел без знака ; формата 32:16=16,16. ; Входные параметры: (Н,L,D,E) - делимое, (В,С) - делитель. ; Выходные параметры: (D,E) - частное, (Н,L) - остаток. |
||
;**************************************************************** |
||
D32_16: |
MVI A, 16 |
; Счетчик циклов |
; Сдвиг влево остатка и частного в (Н,L,D,E) |
||
CYCLE: |
DAD H |
|
PUSH PSW |
; Сохранение счетчика, переноса |
|
XCHG |
||
DAD H |
||
XCHG |
||
JNC PER1 |
||
INX H |
; Учет переноса |
|
; Вычитание делителя из остатка |
||
JC PER2 |
; Если разность <0 |
|
POP PSW |
; Восстановление счетчика |
|
PER3: |
INX D |
; Разряд частного = 1 |
JMP PER4 |
||
; Проверка переноса от сдвига остатка |
||
PER2: |
POP PSW |
; Восстановление переноса |
JC PER3 |
; Если был перенос |
|
; Восстановление остатка |
||
DAD B |
||
; Проверка конца цикла |
||
PER4: |
DCR A |
|
JNZ CYCLE |
; Зацикливание |
|
RET |
;************************** D16_16F **************************** |
||
; Подпрограмма деления дробных двоичных чисел без знака с ФЗ ; формата ( ,16):( ,16)=( ,16). ; Входные параметры: (H,L) - делимое, (В,С) - делитель. ; Выходные параметры: (D,E) - частное. ; Используется подпрограмма D16_16А. |
||
;**************************************************************** |
||
D16_16F: |
CALL D16_16A |
; (D,E) - частное |
RET |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.