Ok Peter, Internally it is a three operand encoding, but the first two can be expressed as one, if they are the same register. I could support that in the next release, If you like.
This is how it goes in binary:
imul ecx,ecx,42 -------> imul ecx,42
opcode:
imul imm8 ecx ecx 42
0110-1011 11-001-001 00101010
imul ecx,edx,42
opcode
imul imm8 edx ecx 42
0110-1011 11-010-001 00101010
Charles