Variablen: Werte tauschen und übernehmen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Klar doch:

Code: Alles auswählen

x$="x_string"
y$="y_string"

!PUSH [v_x$] ; Schreibt den Pointer von x$ in den Stack und setzt die StackPosition 4 weiter
!PUSH [v_y$] ; Schreibt den Pointer von y$ in den Stack und setzt die StackPosition 4 weiter
!POP [v_x$] ; Setzt den Pointer von x$ auf den Wert aus dem Stack und setzt die StackPosition 4 zurück
!POP [v_y$] ; Setzt den Pointer von y$ auf den Wert aus dem Stack und setzt die StackPosition 4 zurück

Debug "x ist nun der " + x$
Debug "y ist nun der " + y$

Code: Alles auswählen

x$="x_string" 
y$="y_string" 

!MOV Eax, [v_y$] ;Schreibt den Pointer von y$ in den Register Eax
!XCHG [v_x$], Eax ;Tauscht den Inhalt von Eax und den Pointer von x$ aus
!MOV [v_y$], Eax ;Setzt den Pointer von y$ auf den Wert im Register Eax

Debug "x ist nun der " + x$ 
Debug "y ist nun der " + y$
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Danke <)
auxxon
Beiträge: 56
Registriert: 17.03.2005 14:30

Beitrag von auxxon »

Es soll für ganz normale bytevariablen werden. :wink:
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Für eine Bytevariable oder nicht, am einfachsten ist es wenn du wie schonmal gesagt eine Hilfsvariable nimmst:

Code: Alles auswählen

a.b = 20
b.b = 40
hv = a
a = b
b = hv
Das ist zwar nicht die schnellste lösung aber die einfachste.
auxxon
Beiträge: 56
Registriert: 17.03.2005 14:30

Beitrag von auxxon »

THX
Antworten