초학 Delphi 삽입 어셈블리[11] - 어셈블리로 Delphi 함수를 다시 쓰기

736 단어 Delphi
4


//Delphi   

function DelphiFun(x: Integer): Integer;

begin

  Result := x * 2;

end;



//    ,             

function AsmFun(x: Integer): Integer;

asm

  add eax, eax   {eax          ,           ,         !}

end;





//   DelphiFun

procedure TForm1.Button1Click(Sender: TObject);

var

  i: Integer;

begin

  i := 34;

  i := DelphiFun(i);

  ShowMessage(IntToStr(i)); {68}

end;



//   AsmFun

procedure TForm1.Button2Click(Sender: TObject);

var

  i: Integer;

begin

  i := 34;

  i := AsmFun(i);

  ShowMessage(IntToStr(i)); {68}

end;


 
   
이 예를 들었을 때 나는 동시에 테스트를 했다.
1000000회 이내로 순환하여 집행하면 기본적으로 차이가 없다.10000000번을 순환해서 집행할 때 겨우 10여 밀리미터의 차이가 있다.
이것은 델파이 자체가 속도가 충분하다는 것을 설명한다.

좋은 웹페이지 즐겨찾기