Delphi Error – E2116 Invalid combination of opcode and operands

Delphi Compiler Error

E2116 Invalid combination of opcode and operands

Reason for the Error & Solution

You have specified an inline assembler statement which is not correct.

program Produce;

  procedure AssemblerExample;
  asm
    mov al, $0f0 * 16
  end;

begin
end.

The inline assembler is not capable of storing the result of $f0 * 16 into the ‘al’ register – it simply won’t fit.

program Solve;
  procedure AssemblerExample;
  asm
    mov al, $0f * 16
  end;

begin
end.

Make sure that the type of both operands are compatible.