| ;*************************** 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).
Ссылка на скачивание - внизу страницы.