Write a procedure named BitwiseMultiply that multiplies any unsinged 32-bit integer by EAX, using only sifting and addition.
Pass the integer to the procedure in the EBX register and return the product in the EXA register. Write a short test program that calls the procedure and displays the product (We will assume that the product is never larger than 32 bits).
This is a fairly challenging program to write.
One possible approach is to use a loop to shift the multiplier to the right, keeping track of the number of shifts that occur before the Carry flag is set.
The resulting shift count can then be applied to the SHL instruction, using the multiplicand as the destination operand. Then the same process must be repeated until you find the last 1 bit in the multiplier.