AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fehler beim Byte-Swap mit Assembler in Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler beim Byte-Swap mit Assembler in Delphi

Ein Thema von turboPASCAL · begonnen am 1. Jul 2005 · letzter Beitrag vom 29. Feb 2012
 
Benutzerbild von x000x
x000x

Registriert seit: 21. Jan 2004
Ort: Bei Hamburg
308 Beiträge
 
Delphi XE2 Professional
 
#15

AW: Fehler beim Byte-Swap mit Assembler in Delphi

  Alt 29. Feb 2012, 08:24
Moin moin,

erstmal danke für eure Erklärungen. Ich konnte es gestern Abend noch unter einem XE2 testen. Wenn ich allerdings eine x64 Version erstellt habe und diese auf einer x64 CPU ausführe, funktioniert es nicht wie gewünscht.

Ursache ist wohl, dass bei 64bit der Wert DW nicht in EAX übergeben wird, sondern in ECX. (Falls diese Erklärung falsch ist, dann korrigiert mich)
Delphi-Quellcode:
function SwapDWord(DW: DWord): DWord;
asm
{$IFDEF CPUX64}
   MOV EAX, ECX
{$ENDIF CPUX64}
   BSWAP EAX
end;
So hat es jedenfalls auf 32bit wie auch auf 64bit funktioniert.
Peter
-= Gruss Peter =-
-= alias x000x =-
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz