Hallo!
Ich guck grad, was hier so heute für Themen sind, wobei ich auch das hier entdeckt habe.
Zitat:
Zitat von
delphifan2004:
Wenn ich mir so die Quelltexte von 32 Bit Programmen angucke, sehe ich im Assemblerteil immer wieder Zuweisungen an al, ah, ax, bl, bh, bx, cl, ch, cx,
dl, dh, dx.
Das sind allesamt 16- oder 8-bittige Register.
Zitat:
Zitat von
delphifan2004:
Nun habe ich in Fachzeit- schriften gelesen, das 16 Bit Dos Programme auf 64 Bit Rechnern nicht mehr laufen.
Das hängt primär vom Betriebssystem ab und nicht von den Prozessoren. Bei IA64 weiß ich es nicht, AMDs x86-64 ist aber ein komplett x86-kompatibler Prozessorkern, somit im Realmode nur 16-bittig. Erst Das Betriebssystem sorgt dafür, daß er in den 64bit-Modus geschaltet wird, weswegen auch ein dafür entwickeltes Betriebssystem notwendig ist, um 64bit-Anwendungen auszuführen.
Aus diesen Ausführungen entnehme ich, das ich 32 Bit Programme nicht ändern muß, wenn sie auf einer 64 Bit CPU laufen sollen. Denn, wenn der Prozessorkern auch beim 64 Bitter X86-kompatibel ist und im RealMode nur 16 Bittig, kennt er ja auch die 8- und 16-bittigen Register. Da fällt mir ein Stein vom Herzen. Hab schon befürchtet, nun überall auf die 32Bit-Äquivalente umstellen zu müssen. Hab nämlich momentan noch einen 32 Bit Rechner und für den 32-Bittige Assembler-Programme, bei denen zwar in .asm-Dateiein die Direktive .386 gesetzt ist, aber trotzdem an vielen Stellen die 8- oder 16-bittige Version der Register verwendet wird (Bios-Interrupts, Farbpaletten-Einstellungen, Maussteuerung...) Hab auch paar Delphi Programme mit Assemblerteilen, wo sinngemäß das gleiche Problem vorliegt. Nun, wenn das später auf dem 64 Bitter kein Problem ist, brauche ich da nix zu ändern.
Schönen Tag noch von
Traudix