![]() |
Delphi-Programme auf 64-Bit CPU?
Ich habe mich gerade gefragt, ob ein mit Delphi erstelltes Programm, also win32 auch auf einem 64-Bit Prozessor laufen würde. Wahrscheinlich ne saublöde Frage :lol:
|
Re: Delphi-Programme auf 64-Bit CPU?
Ich denke mal, ja. Eventuell etwas langsamer, da die 32Bit Variablen immer zuerst mit 0en aufgefüllt werden müssen, aber sie müssten laufen. Eventuell mit einem Emulator.
|
Re: Delphi-Programme auf 64-Bit CPU?
AFAIR laufen 32-Bit-Programme unter Win64 im Emluationsmodus, aehnlich wie 16-Bit-Progs unter Win32. Allerdings wirst du auf die Vorteile von 64-Bit-Prozessoren verzichten muessen ;)
Greetz alcaeus |
Re: Delphi-Programme auf 64-Bit CPU?
Zitat:
Sie laufen auch ohne einen Emulater. Unter Win64 gibt es eine Win32-Ausführungsschicht wie es auch schon zu Win32 für Win16 eine gab/gibt. Diese Schicht ist prinzipbedingt etwas langsamer da viele Funktionsaufrufe erst in den passende Win64-API-Aufruf umgewandelt werden müssen. Auch gibt es wieder getrennte Systemverzeichnisse. In eine der letzten c't-Ausgaben war ein Bericht über Win64 drin und was sich Programmiertechnisch oder auch Anwendungstechnisch ändert. |
Re: Delphi-Programme auf 64-Bit CPU?
Weiteres dazu:
![]() |
Re: Delphi-Programme auf 64-Bit CPU?
Ein 32Bit Integer bleibt ein 32Bit Integer. Klar. Aber wenn der Prozessor ihn verarbeiten will, muss er ihn doch zuerst mit 0en auffüllen. Genauso wie es ein 32Bit Prozessor mit einem 16Bit Integer macht. Oder?
|
Re: Delphi-Programme auf 64-Bit CPU?
Zitat:
Code:
EAX ist ein 32-Bit register, also weiss die CPU, dass sie mit 32 Bit arbeiten muss. Die restlichen Bits interessieren sie gar nicht.
MOV EAX, EBX
ebenso bei 16-Bit-Anweisungen:
Code:
Hier wird nichts mit Nullen aufgefüllt. Würde a) nur zeit kosten und b) evt. noch gebrauchte Daten löschen.
MOV AX, BX
greetz Mike |
Re: Delphi-Programme auf 64-Bit CPU?
Zitat:
Der Hauptunterschied ist das man ein (theoretisch) 64-Bit Adressraum besitzt (Aktuell könnnen die Chipsätze so um die 40 Bit-Adressieren). und damit jeder Pointer 8 Byte groß ist. Aber ein 8-Byte Pointer kann immer noch auf Bytes, ShortInt, Int oder Int64 zugreifen. Strings basieren auch ja "nur" auf 16 Bit-Characters (oder wurde unter Win64 auf 32-Bit-Charcters gewechselt?). |
Re: Delphi-Programme auf 64-Bit CPU?
Das mit den Nullen auffüllen wurde hier in der DP aber schon mal gesagt...
|
Re: Delphi-Programme auf 64-Bit CPU?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 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