Составители:
67
0210: 29 DAD H Сдвиг влево младших двух байтов произв е дения
17 RAL Продолжение сдвига в старший байт
D2 JNC 0218Н Анализ бита множителя и обход
18 прибавления частного произведения,
02 если бит множителя нулевой
19 DAD D Прибавление частного произведения
СЕ АСI 0 Прибавление только флага перено са,
00 как единицы к старшему байту
0218: 05 DCR В Декремент счетчика битов множителя
С2 JNZ 0210Н Конец собственно умножения
10 если счетчик достиг нуля, а иначе -
02 переход на начало цикла
3) заключительная часть подпрограммы – сохранение результата:
021С: 22 SHLD 0400H Запись младшего слова результата
00 в ячейку PLUS
04
6F MOV L,А Передача старшего байта произведения в L
26 MVI H,O Очистка старшего байта PLUS
00 (записью нуля в регистр H)
22 SHLD 0402Н Запись HL в старшую половину
02 ячейки PLUS
04
F1 POP PSW Чтение знака произведения из стека
Е1 POP H Восстановление из стека HL
0227: С9 RET Возврат из подпрограммы
Приложение 6.2
Подпрограмма осуществляет перемножение слов, помещенных в ре-
гистровой паре DE (множитель) и ВС (множимое). В данной работе
применяется для умножения y[k] на весовой коэффициент.
Подпрограмма формирует модуль произведения в ячейке PLUS (4
байта по адресу 0400Н), а знак – во флажке знака МП.
Адре с и код Мнемокод Комментарии
1) предварительная часть – вычисление знака произведения и получение моду-
лей множителей:
0228: Е5 PUSH Н Сохранение в стеке значения HL
7А MOV A, D Определение знака результата
А8 XRA В “исключающим или” старших байтов в А
Страницы
- « первая
- ‹ предыдущая
- …
- 65
- 66
- 67
- 68
- 69
- …
- следующая ›
- последняя »