Re: Parserschwäche
Verfasst: 16.05.2011 18:10
Ich hab den Code noch etwas weiter vereinfacht, aber so das der Fehler noch auftritt:
Danach habe ich mir den Assembler-Code etwas genauer angesehen:
Funktionierender Code:
Fehlerhafter Code:
Wobei die interessante Stelle im fehlerhaften Code wohl diese ist:
Hier wird einfach 3 mal hintereinander verschiedene Werte in das rax-Register geschrieben (unter x86 eax) ohne damit etwas zu berechnen, einmal wird in rax einfach nochmal rax geschrieben (mov rax, rax). Ich denke das ist die Stelle an der der Fehler geschieht.
Gruß, Alex
Code: Alles auswählen
Global a = 0
Global b = 1
Global c = 10
Global x
x = 0 + b * ( c / 360000 + c % 100 )
Debug x
x = a + b * ( c / 360000 + c % 100)
Debug x
Funktionierender Code:
Code: Alles auswählen
mov r15, [rip+0x528f8]
mov r14, [rip+0x528f9]
mov rax, r14
mov rcx, 0x57e40
cqo
idiv rcx
mov r14, rax
mov r13, [rip+0x528e0]
mov rax, r13
mov r13, 0x64
cqo
idiv r13
mov r13, rdx
add r14, r13
imul r15, r14
mov [rip+0x528c8], r15
Code: Alles auswählen
mov r15, [rip+0x528e0]
mov r14, [rip+0x528e1]
mov r13, [rip+0x528e2]
mov rax, r13
mov rcx, 0x57e40
cqo
idiv rcx
mov r13, rax
mov rax, [rip+0x528c9]
mov rax, rax
mov rax, 0x64
cqo
idiv rax
mov rax, rdx
add r13, rax
imul r14, r13
add r15, r14
mov [rip+0x528ae], r15
Code: Alles auswählen
mov rax, [rip+0x528c9]
mov rax, rax
mov rax, 0x64
Gruß, Alex