IMUL: Signed Multiplication: This instruction multiplies a signed byte by a signed bit in source operand e in the register AL or signed word in source operand by signed word in the register AX. The source can be a general purpose register, index register, memory operand or base register, but it can't be an immediate data. In the case of 32- bits results, the higher order word (MSW) is stored in the DX and the lower order word is stored in the register AX. The PF, AF, ZF, and PF flags are undefined after IMUL. If AH and DX both contain parts of 16 and 32-bit result respectively, CF and OF both will be set. The AL and AX are the implicit operands in case of 8 bits and 16 bits multiplications respectively. Sign bit and CF fills the unused higher bits of the result, the AF are cleared. The example instructions are given as follows:
Example :
1. IMUL BH
2. IMUL CX
3. IMUL [SI]