Seite 1 von 1
Assembler error beim Kompilieren
Verfasst: 15.04.2021 08:19
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.
Re: Assembler error beim Kompilieren
Verfasst: 15.04.2021 10:37
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
Re: Assembler error beim Kompilieren
Verfasst: 15.04.2021 11:50
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.
Re: Assembler error beim Kompilieren
Verfasst: 15.04.2021 11:57
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!
Re: Assembler error beim Kompilieren
Verfasst: 15.04.2021 16:54
von 4Planes
Vielen, vielen Dank für die Tipps! tfts Hinweis auf die Pointer hat mich letztlich zum Ziel geführt.
Diese Zeile hat den Fehler ausgelöst:
Code: Alles auswählen
Debug @var_Animation\Start\f ( @var_Animation\Start )
Richtig lautet die Zeile:
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.

Re: Assembler error beim Kompilieren
Verfasst: 15.04.2021 18:40
von tft
Cool ... zur Strafe must du mal bei meiner Video Reihe vorbeischauen .... morgen 18:00
Gruss TFT