there are 3 types of MUL.
MUL x. called a direct MUL, the number to be multiplied is contained in the instruction.
MUL (x). called an extended multiply. the number to be multiplied is at memory location x.
MUL x,y. called an indexed multply, y is added to x and the sum is treated as a memory location. that location is accessed and the byte found there is multplied by the byte in the ALU.
in all cases the result is stored in the ALU.