Kann man eine 32 Bit Datei auf 64 Bit ändern?

5 Antworten

Der 64 bit Befehlssatz ist im Prinzip eine Erweiterung zu dem 32 bit Befehlssatz. Es werden lediglich größere Register verwendet. Allerdings sind dann auch einige Abläufe anders: z.B. kannst du eine 64 Bit Integer Variable mit einem 64 Bit Prozessor in einem Rutsch laden und bearbeiten, während ein 32 Bit Prozessor dafür mehrere Schritte benötigt.

Jeder 64 Bit Prozessor sollte aber abwärtskompatibel sein, also auch 32 Bit Software ohne Probleme ausführen.

Umwandeln der Binärdatei geht jedenfalls nicht so ohne weiteres. Dazu müsstest du das Programm komplett neu kompilieren.

Kommt drauf an, was für eine Datei.

Bei UTF-32 zu UTF-64 (in der Praxis sind diese Formate wohl nicht definiert, aber sie sind eindeutig bestimmt) sind für die Codepunkte oberhalb 0x7fffffff Umcodierungen nötig.

Für gewöhnlich werden Dateien aber oktettweise (8-Bit-weise) ausgelesen und geschrieben.

Im Fall von ausführbaren Binärdateien nimmt man entweder einen Prozessor-Emulator, oder das 32-Bit-Subsystem des Prozessors oder man codiert die Datei um (Disassemblieren+Assemblieren).

Funktional müsstest Du sie dann dahingehend umprogrammieren, dass sie 64-Bit Befehlsinterpreter und Hardwarestrukturen auch nutzen könnte.

Aber warum fragst Du ? Die gängigen 64-Bit Betriebssysteme sind in der Regel vollkommen abwärtskompatibel auch zu Programmen, die in 32 Bit programmiert wurden.

Viele Dateien, ausser spezielle Ausnahmen in plattformunabhängigen Daten, sind da neutral von der Wortbreite der CPU.