Умножение двух чисел с анализом младшего разряда и сдвигом СЧП

Доброго дня!

Стоит задача написать программу в формате микрокоманд для умножения двух положительных чисел по алгоритму с анализом младшего бита множителя со сдвигом СЧП. Множитель и множимое – слова, произведение (СЧП) – двойное слово.

Работаю в эмуляторе микропроцессора.

Пытался описать алгоритм по приложенной блок схеме.

Но возник вопрос в том, как производить сдвиг таким образом, чтобы не терять разряды. Ибо сейчас я по сути просто делю СЧП на два, нежели как в примере здесь(

Умножение с младших разрядов множителя и сдвигом суммы частичных произведений вправо

).

Подпрограмму умножения приложил ниже.

В 11 микрокоманде анализирую младший бит множителя, который находится в ВХ, в случае если он равен нулю, пропускаю суммирование и перехожу к 12 микрокоманде.

В 12 микрокоманде соответственно, множимое из АХ суммирую с СЧП в DX

В 13 микрокоманде делаю ЛС множителя их ВХ вправо на 1 разряд

В 14 микрокоманде делаю ЛС СЧП из DX вправо на 1 разряд

В 15 микрокоманде проверяю равняется ли ВХ 0, если равняется значит все разряды проанализированы и делаю возврат из ПП, иначе иду анализировать следующий разряд и переход к 11 микрокоманде.

Подскажите, пожалуйста, что делаю не так. Спасибо!