Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   ASM-Register auf 64 Bit erweitern (https://www.delphipraxis.net/107497-asm-register-auf-64-bit-erweitern.html)

fLaSh11 28. Jan 2008 18:03


ASM-Register auf 64 Bit erweitern
 
Hallo DPler,

in Balus Tutorial lernen wir, wie wir das Register EAX auf 64 Bit erweitern (Befehl: CDQ).
Wie realisiere ich das für das Register EDX oder ECX?

MfG
Steffen

Dax 28. Jan 2008 18:07

Re: ASM-Register auf 64 Bit erweitern
 
(IIRC) Garnicht. EAX:EDX ist die einzige mögliche Kombination.

sirius 28. Jan 2008 18:13

Re: ASM-Register auf 64 Bit erweitern
 
Tausche doch vorher oder nachher die Register mit XCHG etwas aus. Wozu brauchst du dass denn?

himitsu 28. Jan 2008 18:18

Re: ASM-Register auf 64 Bit erweitern
 
jupp, ist nicht möglich ... delphi ist nur ein 32-bit-Kompiler, also maximal 32 Bit.

wozu brauchst du das denn?


PS: die MMX-Register sind 64-bittig

fLaSh11 28. Jan 2008 18:31

Re: ASM-Register auf 64 Bit erweitern
 
ich wollte in EAX, EDX 32bit-Int speichern und in ECX ne 64er. Aber dann muss ich halt durchtauschen... :drunken:

Trotzdem vielen Dank.

sirius 28. Jan 2008 18:45

Re: ASM-Register auf 64 Bit erweitern
 
Beachte aber, dass du diese Erweiterung auf 64bit primär nur bei Punktoperationen brauchst. Für Strichoperationen kannst du die 64bit hinlegen wo du willst.

fLaSh11 28. Jan 2008 19:18

Re: ASM-Register auf 64 Bit erweitern
 
Zitat:

Zitat von sirius
Beachte aber, dass du diese Erweiterung auf 64bit primär nur bei Punktoperationen brauchst.

Jo, ich will halt ne 64-bit Varaible mit ner 32-bittigen multiplizieren.

//Edit:
Der Beitrag hier verwirrt mich voll total :mrgreen:
Also:
:arrow: Ich erweitere EAX auf 64-bit.
:arrow: Hab ne 32-bittige Zahl in EDX.
:arrow: Jetzt will ich multiplizieren und in EAX speichern!

Ich bekomms einfach nicht hin...

himitsu 28. Jan 2008 20:52

Re: ASM-Register auf 64 Bit erweitern
 
Zitat:

Zitat von fLaSh11
:arrow: Ich erweitere EAX auf 64-bit.
:arrow: Hab ne 32-bittige Zahl in EDX.

nein, wenn du EAX auf 64 bit erweiterst, dann wird diese in EAX und EDX gespeichert

Int64Rec.Lo = EAX
Int64Rec.Hi = EDX

also du kannst dann keine weitere Zahl in EDX ablegen, da EDX belegt ist.

fLaSh11 28. Jan 2008 21:17

Re: ASM-Register auf 64 Bit erweitern
 
Okay! Vielen herzlichen Dank. Ich habe verstanden und es funktioniert!

negaH 29. Jan 2008 11:32

Re: ASM-Register auf 64 Bit erweitern
 
Wie es funktioniert ? Du kannst also einen 64Bit Wert mit einem 32Bit Wert multiplizieren und bekommst dann einen 96Bit Wert raus ? Probiere doch mal (2^62-1) * (2^30-1) zu multiplizieren, und das in einem 64Bit Datentyp zu speichern.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.
Seite 1 von 2  1 2      

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