초학 Delphi 삽입 어셈블리[28] - EAX의 값을 0으로 설정하는 세 가지 방법과 효율

781 단어 Delphi


//          ,      



{Fun1        0,   }

function Fun1: Integer;

asm

  mov eax, 0

end;



{Fun2   Fun3      CPU     ,   Fun1  }

function Fun2: Integer;

asm

  sub eax, eax

end;



{Fun3   }

function Fun3: Integer;

asm

  xor eax, eax

end;





//    

procedure TForm1.Button1Click(Sender: TObject);

var

  t: Cardinal;

  i: Integer;

begin

  t := GetTickCount;

  for i := 0 to 100000000 do Fun1;

  t := GetTickCount - t;

  ShowMessage(IntToStr(t)); { : 600  }





  t := GetTickCount;

  for i := 0 to 100000000 do Fun2;

  t := GetTickCount - t;

  ShowMessage(IntToStr(t)); { : 500  }





  t := GetTickCount;

  for i := 0 to 100000000 do Fun3;

  t := GetTickCount - t;

  ShowMessage(IntToStr(t)); { : 400  }

end;


 
   

좋은 웹페이지 즐겨찾기