Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi-Programme auf 64-Bit CPU? (https://www.delphipraxis.net/64536-delphi-programme-auf-64-bit-cpu.html)

Weazy 4. Mär 2006 21:55


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:

3_of_8 4. Mär 2006 21:58

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.

alcaeus 4. Mär 2006 22:04

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

Bernhard Geyer 5. Mär 2006 10:20

Re: Delphi-Programme auf 64-Bit CPU?
 
Zitat:

Zitat von 3_of_8
...da die 32Bit Variablen immer zuerst mit 0en aufgefüllt werden müssen,...

Nicht ganz. Dein 32-Bit-Integer bleibt ein 32-Bit-Integer.

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.

Khabarakh 5. Mär 2006 11:10

Re: Delphi-Programme auf 64-Bit CPU?
 
Weiteres dazu: http://en.wikipedia.org/wiki/WOW64

3_of_8 5. Mär 2006 11:16

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?

JasonDX 5. Mär 2006 11:20

Re: Delphi-Programme auf 64-Bit CPU?
 
Zitat:

Zitat von 3_of_8
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?

Nein. Eine ASM-Anweisung sieht bspw. so aus:
Code:
MOV EAX, EBX
EAX ist ein 32-Bit register, also weiss die CPU, dass sie mit 32 Bit arbeiten muss. Die restlichen Bits interessieren sie gar nicht.
ebenso bei 16-Bit-Anweisungen:
Code:
MOV AX, BX
Hier wird nichts mit Nullen aufgefüllt. Würde a) nur zeit kosten und b) evt. noch gebrauchte Daten löschen.

greetz
Mike

Bernhard Geyer 5. Mär 2006 12:04

Re: Delphi-Programme auf 64-Bit CPU?
 
Zitat:

Zitat von 3_of_8
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?

Nein.
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?).

3_of_8 5. Mär 2006 12:09

Re: Delphi-Programme auf 64-Bit CPU?
 
Das mit den Nullen auffüllen wurde hier in der DP aber schon mal gesagt...

Bernhard Geyer 5. Mär 2006 12:10

Re: Delphi-Programme auf 64-Bit CPU?
 
Zitat:

Zitat von 3_of_8
Das mit den Nullen auffüllen wurde hier in der DP aber schon mal gesagt...

Evtl. in anderem Zusammenhang bzw. in einem speziellen Teilbereich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz