dest = dest * source
The 2 operand imul instruction has a destination register as its first operand and a register, memory location or an immediate value as the second operand (source). The destination register value is multiplied by the source operand and the product is placed in the destination register. The product may be truncated.
imul r10, 13 ; multiply r10 by 13 imul r8d, 12 ; multiply r8d by 12 ; top half of r8 will be 0 imul rdx, rax ; multiply rdx by rax imul rdx, [x] ; multiply rdx by 64 bit variable x shl rax, 4 ; shift right 4 (quick multiply by 16)
OF and CF are set to 0 if the upper half of the product is 0 and 1 otherwise.