Подпрограмма сложения чисел с двойной точностью
183
Распределение общих регистров: R1:XH, R3:YH, R5:SH
R2:XL, R4:YL, R6:SL
Ячейка памяти | Команда на машинном языке | Команда в символической форме | Комментарий |
MOV 0 from 2 | Загрузка XL в аккумулятор | ||
ADD 4 | Сложение YL с XL, С = перенос | ||
MOV 0 to 6 | Загрузка SL в регистр 6 | ||
MOV 0 from 1 | Загрузка Хн в аккумулятор | ||
ADC 3 | Сложение Хн, Ун и С | ||
MOV 0 to 5 | Загрузка SH в регистр 5 | ||
F8 | RET | Возврат из подпрограммы |
Рис. 5.3 Блок-схема алгоритма сложения чисел с
двойной точностью
Первая команда загружает младшую часть X в аккумулятор. Затем команда сложения складывает младшие части X и Y без начального переноса. Итоговый перенос из старшего разряда устанавливается на триггер переноса С. Затем полученная на сумматоре младшая часть суммы передается в регистр 6. После этого старшая часть X передается в аккумулятор. Далее команда «сложение с переносом» складывает старшие части X и Y и перенос С. В результате старшая часть суммы оказывается в аккумуляторе, а окончательный перенос — в триггере переноса С. Старшая часть суммы передается в регистр 5 следующей командой. Последняя команда — возврат из подпрограммы.