Einzelnen Beitrag anzeigen

Trinity.dp

Registriert seit: 27. Nov 2009
8 Beiträge
 
#5

AW: bitmap32 and xor

  Alt 17. Sep 2011, 14:45
Oh warte mal. (Alles wieder löschen...)

Deine MemoryAsString() ist auch fehlerhaft. Per CopyMemory kopierst du nicht einzelne Bits, sondern ganze Bytes. Deshalb ist diese Codesequenz auch falsch:
Delphi-Quellcode:
  CopyMemory(@buffer, p, 1);
  if buffer then
    result := result + '1'
Dh. der Output ist womöglich auch inkorrekt!
Der Output müsste stimmen. Die Funktion war nur ein Überbleibsel von meinem weiteren Test und wird an keiner Stelle benutzt (hab sie jetzt auch gelöscht).

Den Assembler Code möchte ich momentan nicht entziffern, aber ich schätze mal, da sind auch welche Fehler. Und warum das Ganze in Assembler? Geht ja auch ganz normal?!

probier
Delphi-Quellcode:
procedure XorMemBlock(Source1, Source2, Destination: PByte; Count: Integer);
begin
  while Count > 0 do
  begin
    Destination^ := Source1^ xor Source2^;
    inc(Source1);
    inc(Source2);
    inc(Destination);
  end;
end;
Assembler Code müsste eigentlich auch stimmen. Ich brauche Geschwindigkeit. Dein Code gibt leider einen Fehler. Ich schaue mal ob ich diesen finden kann!

Vielen Dank schon mal, auch wenn ich immer noch ganz am Anfang stehe.

Edit: Ok es fehlte wirklich nur das decrease. Und mit deinem Code funktioniert es auch. Dann muss ich wohl noch mal den Assembler-Code anschauen.

Edit2: Vielen lieben Dank! Du hast mir sehr geholfen.

Geändert von Trinity.dp (17. Sep 2011 um 14:50 Uhr)
  Mit Zitat antworten Zitat