Assembler error beim Kompilieren

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
4Planes
Beiträge: 37
Registriert: 19.11.2020 17:08

Assembler error beim Kompilieren

Beitrag von 4Planes »

Hallo!
Wenn ich versuche, mein Programm zu kompilieren und zu starten, erhalte ich folgenden Fehler:
PureBasic Assembler error
PureBasic.asm [15061]:
MOVSX rax,rsp
error:invalid size of operand
In meinem Code benutze ich kein Inline Assembler. Ich benutze auch keine Makros (ähnliche Fehler wurden hier im Forum auf Makros zurückgeführt).

Was kann zu so einer Fehlermeldung führen? Ich weiß gar nicht, wo ich anfangen soll, meinen Code zu debuggen.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6996
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Assembler error beim Kompilieren

Beitrag von STARGÅTE »

MOVSX soll eigentlich einen kleineren Register in einen größeren und dabei das Vorzeichen übernehmen.
Wenn du selbst keine ASM nutzt und auch keine fremden Includes nutzt, dann brauchen wir zumindest dein Code der diesen Fehler auslöst.

Es sollte z.B. ehr so aussehen: MOVSX rax,esp
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Assembler error beim Kompilieren

Beitrag von tft »

Also Assembler war für mich vor 35 Jahren ..... aber wenn ich mich recht erinnere ist rsp ein Stak Pointer 64 Bit Long.
Und rax ist das Volume, also der Wert . Das kann so eigentlich nur passieren wenn du mit einem 64 Bit PB auf einer 32 Bit Maschien arbeitest ....
Aber das sollte schon viel früher abgefangen werden. Die Frage mit dem Macro ist eine überlegung wert.
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Benutzeravatar
Helle
Beiträge: 566
Registriert: 11.11.2004 16:13
Wohnort: Magdeburg

Re: Assembler error beim Kompilieren

Beitrag von Helle »

Du kannst auch mal folgendes machen:
- die PB-Datei (deine Source-Code-Datei) in den Compilers-Ordner deiner PB-Installation kopieren
- dort eine BAT-Datei erstellen; z.B. ASM.bat
- in diese BAT-Datei reinkopieren/schreiben und abspeichern (test.pb ist natürlich der Name deiner Datei!):
PBCompiler test.pb /commented
pause
- die BAT-Datei ausführen; es wird die Datei PureBasic.asm erstellt
- im Falle einer Fehlermeldung die Zeilen-Nr. merken [...], müsste mit deiner Fehlermeldung identisch sein
- in PureBasic.asm zur angemeckerten Zeilen-Nr. hangeln (mit irgendeinem Text-Editor o.ä.) und schauen, was davor/danach ausgeführt wurde bzw. werden sollte
- die Zeilen davor/danach kannste auch hier posten, dann kann man hoffentlich den Fehler finden

Viel Erfog!
Benutzeravatar
4Planes
Beiträge: 37
Registriert: 19.11.2020 17:08

Re: Assembler error beim Kompilieren

Beitrag von 4Planes »

Vielen, vielen Dank für die Tipps! tfts Hinweis auf die Pointer hat mich letztlich zum Ziel geführt. :allright:

Diese Zeile hat den Fehler ausgelöst:

Code: Alles auswählen

 Debug @var_Animation\Start\f ( @var_Animation\Start )
Richtig lautet die Zeile:

Code: Alles auswählen

 Debug var_Animation\Start\f ( @var_Animation\Start )
Zur Erklärung: f ist eine Prozedur, die einen float Wert ausgibt und einen Pointer auf eine Structur als Parameter bekommt.

Der Code sollte eigentlich testen, ob das wie gedacht funktioniert. :freak:
Benutzeravatar
tft
Beiträge: 605
Registriert: 08.09.2004 20:18
Computerausstattung: GTX Titan , i9 9900K , 32 GB Ram , 500 GB SSD , 3 ASUS FullHD Monitore and more
Wohnort: Dachsen
Kontaktdaten:

Re: Assembler error beim Kompilieren

Beitrag von tft »

Cool ... zur Strafe must du mal bei meiner Video Reihe vorbeischauen .... morgen 18:00

Gruss TFT
TFT seid 1989 , Turgut Frank Temucin , Dachsen/Berlin/Antalya
Aktuelles Projekte : Driving School Evergarden
YouTube : Pure Basic to go
FaceBook : Temuçin SourceMAgic Games
DISCORD : SourceMagic
W10 , i9 9900K ,32 GB Ram , GTX Titan , 3 Monitore FHD
ARDUINO Freak :-)
Antworten