Составители:
68
F5 PUSH PSW Сохранение знака результата в стеке
7А MOV A, D Передача старшего байт а в А
Е6 ANI 7FH Очистка знакового бита
7F (7FH – битовая маска)
57 MOV D, A Возврат байта в D
78 MOV А, В Аналогично для второго сомножителя:
Е6 ANI 7FH Очистка знакового бита
7F (7FH – битовая маска)
47 MOV В, А Возврат байта в B (получены абсолютные зна
чения сомножителей)
2) основная часть – собственно умножение:
0234: 21 LXI Н,0 Очистка места для произведения
00 в регистровой паре HL
00
3E MVI А, 16 Счетчик сдвигов (битов множителя)
10 (число битов множителя – 16)
0239: EB XCHG Обмен cодержимых HL и DE
29 DAD H Сдвиг множителя влево
023В: ЕВ XCHG Обратный обмен HL и DE
02 JNC 0244H Анализ выдвинутого бита множителя
44 и обход, если он нулевой
02
09 DAD В Прибавление частного произведения
D2 JNG 0244H Проверка наличия переноса
44
02
13 INX D Прибавление к старшему слову перено са
от прибавления частного произведения
0244: 3D DCR A Декремент счетчика сдвигов
СА JZ 0252H Если все биты множителя обработаны,
39 то переход на конец умножения
02
29 DAD H Сдвиг влево произведения
D2 JNC 0239Н Проверка наличия переноса
39 и переход на нача ло цикла, если
02 переноса нет
ЕВ XCHG Иначе – загруз ка множителя из DE в HL
29 DAD H Сдвиг множителя влево
23 INX H и прибавление переноса из произведения
СЗ JMP 023BH Продолжение цикла умножения
ЗВ
Страницы
- « первая
- ‹ предыдущая
- …
- 66
- 67
- 68
- 69
- 70
- …
- следующая ›
- последняя »