Составители:
Адрес Машинный код Мнемокод Комментарий
0800 AF XRA A
0801 67 MOV H, A
0802 6F MOV L, A
Проверка сомножителей на 0
0803 81 ADD C
0804 C8 RZ Если множитель = 0
0805 AF XRA A
0806 B2 ORA D
0807 B3 ORA E
0808 C8 RZ Если множимое = 0
0809 79 MOV A, C (А) – множитель
080A 0608 MVI B, 8 Счетчик циклов
Сдвиг текущей суммы ЧП и множителя вправо
080C 29 цикл: DAD H
080D 17 RAL
080E D21408 JNC пер Если разряд множителя = 0
Сложение множимого с текущей суммой ЧП
0811 19 DAD D
0812 CE00 ACI
Проверка конца цикла
0814 05 пер: DCR B
0815 C20C08 JNC цикл Зацикливание
0818 C9 RET
Входные параметры программы: (С) – множитель, (D, E) – множимое.
Выходные параметры: (A, H, L) – произведение. В процессе выполнения
программы используются все регистры, сохраняются (С) и (D, E).
Программа умножения У168, представленная табл. 3.2, позволяет
получить произведение в сокращенном формате 16×8 = 16, не превышающем
формат множимого. Программа У168 использует программу У24 в качестве
подпрограммы. 24-разрядный результат работы У24 округляется по правилам
симметричного округления до 16-разрядного формата.
Таблица 3.2. Программа умножения У168
Адрес Машинный код Мнемокод Комментарий
0820 CD CALL У24 (A, H, L) – произведение
0821 00
0822 08
Округление результата
0823 45 MOV B, L (B) – МЛБ
0824 6C MOV L, H (L) – СРБ
0825 67 MOV H, A (H) – СТБ
0826 78 MOV A, B (A) – МЛБ
0827 17 RAL
0828 D0 RNC Если СТР байта = 0
0829 23 INX H (СТБ, СРБ) + 1
082A C9 RET
В табл. 3.2 использованы сокращения: МЛБ – младший байт; СРБ – средний
байт; СТБ – старший байт; СТР – старший разряд.
16
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »