You want to use shifting and addition to do this.
Lets say that you are trying to multiply 3 * 3, and we had a 4 bit register.
In binary: 0011 * 0011
if we encounter a 1 we shift right by the value of the index where we found the 1, if we have a zero we don't do anything:
0011
first we have 1, at location 0, so we add the number to an empty register without shifting: we have 0011 so far
then we have another 1, at location 1, we shift the original number 0110, and add it to the previous value 0011
0011 + 0110 => 1001 ; since we have all 0's after we are done
You need to iterate over the bits of one of the value that you will be multiplying and everytime that you have a 1 apply a shift that will correspond to its location.