Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   WinXP mit 64-Bit CPU (https://www.delphipraxis.net/88498-winxp-mit-64-bit-cpu.html)

MatWur 16. Mär 2007 11:27


WinXP mit 64-Bit CPU
 
Hallo,

also ich habe folgendes Problem: aufgrund des Ablebens meiner alten AMD XP 32-BIT CPU letzten Freitag musste ich mir einen neuen Computer zulegen. Der hat nun eine Intel Core 2 Duo E6600 CPU drinnen. Installation von WindowsXP und den Proggy's war soweit kein Problem, auch Delphi 7 konnte ich problemlos wieder installieren.
Nun juckt es mir aber natürlich in den Fingern und ich möchte eine 'richtige' 64-bit Routine programmieren. Nicht das ganze Programm, nur spezielle Routinen für kurze, mathematische Berechnungen. Das sollte eigentlich mit dem integrierten Assembler funktionieren, alleine ich weiss nicht wie. braucht man da ein spezielles Erweiterungstool zum Assembler damit der 64-Bit Befehle assemblieren kann? Oder ist das bereits integriert (in der Hilfe-Datei von Delphi habe ich bis jetzt nichts gefunden...). Und gibt es irgendwo eine Übersicht über die speziellen 64-Bit Assembler Befehle?
Danke für jede Hilfe!

bis denne,

Matthias

Gruber_Hans_12345 16. Mär 2007 11:31

Re: WinXP mit 64-Bit CPU
 
ich vermute, das das nicht gehen wird

ich glaube windows startet ein 32bit programm in irgendeinem speziellen modus (deshalb auch das *32 im taskmanager)

und auch für den assembler brauchste dann einen speziellen 64 bittigen, der die neuen RAX register und so kennt, der delphi assembler wird die sicher nicht kennen ...

MagicAndre1981 16. Mär 2007 11:32

Re: WinXP mit 64-Bit CPU
 
wenn du das 32Bit WindowsXP installiert hast, kannst du keine 64Bit Programme nutzen.

Muetze1 16. Mär 2007 11:38

Re: WinXP mit 64-Bit CPU
 
Zitat:

Zitat von MagicAndre1981
wenn du das 32Bit WindowsXP installiert hast, kannst du keine 64Bit Programme nutzen.

... aber 64 Bit Assembler Befehle - und das will er...

MagicAndre1981 16. Mär 2007 11:48

Re: WinXP mit 64-Bit CPU
 
Zitat:

Zitat von Muetze1
Zitat:

Zitat von MagicAndre1981
wenn du das 32Bit WindowsXP installiert hast, kannst du keine 64Bit Programme nutzen.

... aber 64 Bit Assembler Befehle - und das will er...

das geht? :shock:

War mir neu :thumb:

himitsu 16. Mär 2007 12:00

Re: WinXP mit 64-Bit CPU
 
Klar geht das.

Die CPU ist ja 64-bitig ;)


z.B. hab ich daheim ein 64 Bit-Vista in einem 32 Bit XP (VM) laufen und dessen 64 Bit-Befehle werden ja schließlich auch von der CPU abgearbeitet.

Aber der integrierte Assembler ist doch nur für 32 ausgelegt,
also wird das wohl da nicht zu lösen sein.

Binaries ins Programm einzulinken geht aber, also vermute ich mal das du da auch den Code aus 'nem 64 Bit-Assembler einlinken könntest.


Nur wird dieser doch dann in eimem 32 Bit-Task/Thread ausgeführt und demnach wohl auch von Windows als 32 Bit interpretiert und ob er dann auch funktionsfähig ist? :gruebel:

MagicAndre1981 16. Mär 2007 12:05

Re: WinXP mit 64-Bit CPU
 
Zitat:

Zitat von himitsu
Klar geht das.

Die CPU ist ja 64-bitig ;)

dachte nur es hakt an dem 32Bit Windows.

MatWur 16. Mär 2007 12:12

Re: WinXP mit 64-Bit CPU
 
Hallo noch einmal,

hmmm, bisher nicht sehr ermutigend :?
@ Gruber_Hans_12345: dieses *32 im taskmanager habe ich bei mir nicht gefunden bisher.
Das die neuen 64-Bit Register mit einem 'R' anfangen habe ich schon einmal hier im Forum gelesen, ich dachte das könnte der integrierte Assembler schon... muss ich mal selber austesten.

@ MagicAndre1981: Ich möchte kein 64-Bit Programm schreiben (dabei ist ein 64-Bit Programm eine Unterroutine, die ein 64-Bit Betriebssystem voraussetzt). Ich möchte ein 32-Bit Pogramm schreiben, das kurze 64-Bit Prozeduren/Funktionen (die selber keine Voraussetzungen an das aufrufende Mutterprogramm stellen) aufrufen kann, normalerweise dürfte das Betriebssystem davon gar nichts bemerken. Ich hoffe schon noch, daß das geht :zwinker:

@ Muetze1: Richtig! :mrgreen:

Wie gesagt, solch ein erweiterter Assembler wäre genau das richtige. Eigentlich stelle ich es mir nicht allzu schwer vor, den integrierten Assembler um die benötigten Befehle zu erweitern, aber ich kann mir nicht vorstellen, das solch ein Tool noch nicht existiert... :angel:
genau so etwas würde ich suchen :cyclops:

bis denne,

Matthias

Gruber_Hans_12345 16. Mär 2007 12:16

Re: WinXP mit 64-Bit CPU
 
achso, ich dachte du hast ein 64bit windows und willst nun in deinem 32bit programme ein paar 64 bit assembler routinen einbauen.

ich kann mir aber trotzdem nicht vorstellen, das der delphi inline assembler 64bit befehle oder register kann (die gabs damals ja noch nciht, also wie soll der die assemblieren?)

wenn es wirklich geht, das ein 32 bit programm 64bit befehle verwenden kann, dann müsstest du dir einen externen assembler besorgen (von intel oder so) und die die funktionen dann dort erstellen, damit müsste man dann doch ne .obj datei erstellen können, die man wiederum in delphi dsazulinken kann ... aber da sind schon viele wenn oder könnte drinnen ;)

himitsu 16. Mär 2007 12:27

Re: WinXP mit 64-Bit CPU
 
Zitat:

Zitat von Gruber_Hans_12345
ich kann mir aber trotzdem nicht vorstellen, das der delphi inline assembler 64bit befehle oder register kann (die gabs damals ja noch nciht, also wie soll der die assemblieren?)

gegeben hattes es die schon, aber wozu soll jemand denn in einen 32-Bit-Compiler 64-Bit-Befehle einbauen :stupid:

PS: 2008/2009 soll ja auch endlich ein 64-Bit-Delphi auskommen.
also für "native" Windowsprogramme ... für 64-Bit-.Net-Programme kommt schon vorher was (oder is jetzt schon da)

[add]
unterjubeln könntest'e dem InlineASM jedoch die nötigen Befehle :roll:

halt so wie man ihm auch andere ihm unbekannte Befehle reindrückt ... z.B.:
Delphi-Quellcode:
RDTSC
// oder
DW 310Fh
[add2]
RegDisableReflectionKey RegEnableReflectionKey sieht mir doch nicht so "schwer" aus :angel2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:11 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