Как реализовать MUL, используя все остальные инструкции по сборке?

Скажем, я реализовал все ADD, AND, SHF, JUMP, BR, LDW, LDB (байт загрузки слова загрузки ...) ........ кроме команд MUL (несколько) в сборочной машине. Теперь я хочу написать ассемблерный код для работы с инструкцией MUL, которая принимает данные, хранящиеся в 0x4000 (a) и 0x4001 (b) (каждый из 8 бит), и вычисляет их произведение, а затем сохраняет результат в 0x4002 (16 бит). И мы хотим минимизировать шаги инструкции.

Что я могу думать о:

a + a + a + a + ..... a (b раз) самый простой, но явно худший

Leftshift (a, 7) + leftshift (a, 6) + ..... + a (сдвиг и добавление в соответствии с b)

Я хочу знать, есть ли лучшее решение этого вопроса. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос