Einzelnen Beitrag anzeigen

moritz

Registriert seit: 18. Apr 2003
1.037 Beiträge
 
#3

Re: Assembler: 0 ms für 50 Mio Durchläufe einer Funktion?

  Alt 31. Jan 2005, 20:47
JA, jetzt geht es Danke. Logischerweise hat er die 50 Mio Aufrufe rausgekürzt *g* Allerdings nur bei der Assembler-Funktion
Kann ich die Optimierung denn nur für diese Funktion deaktiviern?
Delphi-Quellcode:
function Darken2(Value: TColor; Percentage: Byte): TColor;
var Buffer: Array[0..3] of Byte;
asm
  PUSHA

  MOV EBX, Value
  XOR ECX, ECX
  MOV CX, 3
  @@CLC:
    MOV AL, BL
    MUL Percentage
    MOV DL, $64
    DIV DL
    MOV byte ptr buffer[3], al
    SHR buffer, 8
    SHR EBX, 8
  LOOP @@CLC

  POPA

  MOV EAX, Buffer
end;
Mit {O-} geht es leider nicht
"Optimistisch ist diejenige Weltanschauung, die das Sein höher als das Nichts stellt und so die Welt und das Leben als etwas an sich Wertvolles bejaht."
Albert Schweitzer
  Mit Zitat antworten Zitat