function LongMul(X, Y: Integer): Longint; asm
  MOV     EAX,X
  IMUL    Y
end;

解决方案 »

  1.   


    add di, @abc看看?
      

  2.   

    Delphi帮助说得很详细: asmASM procedure or function like the top ASM block like this:
    asm {your asm statement list} end
      

  3.   

    当然用了
    asm
    ...
    endadd di, @abc也不行
      

  4.   

    di是个16位寄存器,offset abc是个32位的,所以不匹配。mov edi, offset abc
      

  5.   

    可以赋值:
    procedure TForm1.Button1Click(Sender: TObject);
    var abc: integer;
    begin
      asm
        //mov eax, offset abc
        //add edi, eax
        add di, offset abc
      end;
    end;