Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#1

Fehler bei 64-Bit Assembler

  Alt 15. Dez 2011, 13:49
Ich hatte vor ein paar Tagen das Problem, dass eine Assembler-Funktion (64Bit) fehlerhafte Resultate lieferte.
Nach einigem Suchen bemerkte ich, dass ein "XCHG RAX, RCX" in ein "XCHG EAX, ECX" umgesetzt wurde, welches dann zudem noch falsch abgearbeitet wurde.
Gut, ich habe dann dass "XCHG RAX, RCX" durch ein DW $9148 ersetzt, was das Problem löste.
Ich hab dann alle denkbaren "XCHG Rxx, Ryy" Kombinationen überprüft und festgestellt, dass dieser Fehler immer dann auftritt, wenn das RAX-Register beteiligt ist, gleichgültig ob als erster oder zweiter Parameter.
Die anhängenden Screenshots zeigen jeweils vor und nach der Ausführung des "XCHG" die Registerinhalte.
Könnt ihr bitte mal prüfen, ob das bei euch auch so ist.
Danke.
Miniaturansicht angehängter Grafiken
1.jpg   2.jpg   5.jpg   6.jpg  
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat