Seite 1 von 1

MOV rax,eax

Verfasst: 16.07.2012 04:41
von Regenduft
(Habe den Bug bereits im offiziellen Forum gepostet)

PB 4.61, Win7 Home Premium x64

Wenn man den folgenden Code kompiliert, erhält man einen Assembler- anstatt einen Syntax-Fehler (nur x64):

Code: Alles auswählen

Debug Str(#PB_Key_1) = "#PB_Key_1"
Fehlermeldung (x64):

Code: Alles auswählen

PureBasic - Assembler error
---------------------------
PureBasic.asm [109]:
MOV rax,eax
error: operand sizes do not match.
Wenn man den x86-Compiler benutzt, erhält man zwar keinen Assembler-Fehler, aber der Debugger spuckt einfach "0" aus. Es gibt keinen Syntax-Fehler. (Schätze mal, es wird dann "MOV eax,eax" kompiliert)

Ich bin mir nicht sicher, wie dieses Problem gehandhabt werden sollte, denn schließlich ist es ja kein "wirklicher" Syntax-Fehler (glaube ich...), aber der Assembler-Fehler ist schon ziemlich verwirrend.

Sorry, falls der Bug schon gemeldet wurde, aber:
"MOV rax,eax" = 3 * 3 chars = unsuchbar

Re: MOV rax,eax

Verfasst: 16.07.2012 04:47
von Derren
Sieht nach einem alten Bug aus, oder er wurde wieder eingebaut, aus Versehen...

http://www.purebasic.fr/english/viewtop ... =4&t=43697

Re: MOV rax,eax

Verfasst: 16.07.2012 06:42
von Regenduft
Ich frag mich echt wie Du dieses Posting gefunden hast... :o

Re: MOV rax,eax

Verfasst: 16.07.2012 10:23
von Derren
Google mal folgendes:

Code: Alles auswählen

site:purebasic.fr/english/ MOV rax,eax

Re: MOV rax,eax

Verfasst: 29.08.2012 10:27
von 7x7
Weiss nicht, ob dieses Problem schon gelöst ist (der Link von Derren funktioniert bei mir nicht: "Site not found")

"MOV rax, eax" (64-Bit-Register <-- 32-Bit-Register) geht so nicht!

Dafür gibt es die SXD-Befehle:

MOVSXD reg64, reg32 ;schon klappts auch mit dem Nachbarn ;-)

Re: MOV rax,eax

Verfasst: 29.08.2012 10:50
von RSBasic
7x7 hat geschrieben:(der Link von Derren funktioniert bei mir nicht: "Site not found")
http://www.purebasic.fr/english/viewtop ... =4&t=50545