Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#2

Re: Verdrehte Bits (Wilde Pointereien)

  Alt 16. Aug 2007, 20:13
Das schnellste ist ein "BSWAP" (inline-Assembler).

Das Problem ist das Gleiche in Windows. Sobald nämlich mehr als ein Byte dabei ist, kommst du in Probleme mit der Byte-Reihenfolge, zumindest ist das theoretisch der Fall.

Suche hier:
http://jedi-apilib.cvs.sourceforge.n...11&view=markup
nach "RtlUlongByteSwap" und kopiere den Code. Ist von mir und du darfst es auch ohne die MPL/LGPL verwenden. Wegen einem zweibytigen Opcode muß ich keine Erwähnung irgendwo haben

Auch:
MSDN-Library durchsuchenhtonl
MSDN-Library durchsuchenntohl

Ach was, hier ist sie:

Delphi-Quellcode:
function RtlUlongByteSwap(Source: ULONG): ULONG;
asm
  // This is not written as mnemonics to be compatible with D4!
  db 0Fh, 0C8h // "bswap EAX" can only be executed on 486+!!!
(*
  // Does the same but perhaps slower ...
                        // Source = $11223344
  rol  AX,  08h        // Source = $11224433
  rol  EAX, 0Fh        // Source = $44331122
  rol  AX,  08h        // Source = $44332211
*)

end;
  Mit Zitat antworten Zitat