Умножение 16-разрядных чисел
Вход: BC – множимое; DE – множитель.
Выход: DEHL – произведение.
Во время работы подпрограммы аккумулятор используется в качестве счётчика разрядов.
MPY: LD HL,0000h ; Начальная инициализация произведения
LD A,16 ; Счётчик разрядов
LOOP: ADD HL,HL ; Сдвиг промежуточного результата влево
EX DE,HL
ADC HL,HL
EX DE,HL
JR NC,DECA ; Если очередной разряд множителя равен 0,
; сложение не требуется
ADD HL,BC ; Прибавление множимого
JR NC,DECA
INC DEC
DECA: DEC A ; Уменьшение счётчика и повтор операции,
JP NZ,LOOP ; пока не обработаны все разряды
RET