Registriert seit: 10. Jun 2003
Ort: Berlin
9.670 Beiträge
Delphi 11 Alexandria
|
AW: schnelle getPixel Funktion
16. Aug 2011, 11:22
Der zeitliche Overhead liegt einerseits am Funktionsaufruf, vor allem aber an der Berechnung der Adresse des Pixelwertes...
Schau dir dein "einfaches" getpixel mal im Assemblercode an...
Code:
XYZ.pas.26: begin
004AB71C 55 push ebp
004AB71D 8BEC mov ebp,esp
004AB71F 83C4F0 add esp,-$10
004AB722 894DF4 mov [ebp-$0c],ecx
004AB725 8955F8 mov [ebp-$08],edx
004AB728 8945FC mov [ebp-$04],eax
XYZ.pas.27: result := bits[y][3*x + 2];
004AB72B 8B45FC mov eax,[ebp-$04]
004AB72E 8B8088030000 mov eax,[eax+$00000388]
004AB734 8B55F4 mov edx,[ebp-$0c]
004AB737 8B0490 mov eax,[eax+edx*4]
004AB73A 8B55F8 mov edx,[ebp-$08]
004AB73D 8D1452 lea edx,[edx+edx*2]
004AB740 8A441002 mov al,[eax+edx+$02]
004AB744 8845F3 mov [ebp-$0d],al
XYZ.pas.28: end;
004AB747 8A45F3 mov al,[ebp-$0d]
004AB74A 8BE5 mov esp,ebp
004AB74C 5D pop ebp
004AB74D C3 ret
Geändert von jaenicke (16. Aug 2011 um 11:24 Uhr)
|
|
Zitat
|