Code: Alles auswählen
#FTTicks_per_Day = 864000000000
dummy1.q = 864000000000
dummy2.q = #FTTicks_per_Day
Debug dummy1.q / dummy2.q
Debug dummy1.q / #FTTicks_per_Day
Das Zweite 1214
Warum gibt es unterschiedliche Ergebnisse?

Code: Alles auswählen
#FTTicks_per_Day = 864000000000
dummy1.q = 864000000000
dummy2.q = #FTTicks_per_Day
Debug dummy1.q / dummy2.q
Debug dummy1.q / #FTTicks_per_Day
Dein PC kaputt? Bei mir kommt immer 1 heraus.Gezuppel hat geschrieben:Warum gibt es unterschiedliche Ergebnisse?
Dann ist der von Mok wohl auch kaputtDein PC kaputt? Bei mir kommt immer 1 heraus.
Code: Alles auswählen
Assemblierung des x86-Codes
; #FTTicks_per_Day = 864000000000
; dummy1.q = 864000000000
MOV dword [v_dummy1],711573504
MOV dword [v_dummy1+4],201
; dummy2.q = #FTTicks_per_Day
MOV dword [v_dummy2],711573504
MOV dword [v_dummy2+4],201
;
; var1 = dummy1.q / dummy2.q
PUSH dword [v_dummy1+4]
PUSH dword [v_dummy1]
LEA eax,[v_dummy2]
PUSH dword [eax+4]
PUSH dword [eax]
PUSH dword [esp+12]
PUSH dword [esp+12]
CALL Div64
MOV [esp],eax
MOV [esp+4],edx
POP eax
POP edx
MOV dword [v_var1],eax
; var2 = dummy1.q / #FTTicks_per_Day
PUSH dword [v_dummy1+4]
PUSH dword [v_dummy1]
PUSH dword 201
PUSH dword 711573504
PUSH dword [esp+12]
PUSH dword [esp+12]
CALL Div64
MOV [esp],eax
MOV [esp+4],edx
POP eax
POP edx
MOV dword [v_var2],eax
Code: Alles auswählen
Assemblierung des x86-64-Codes (x64)
; #FTTicks_per_Day = 864000000000
; dummy1.q = 864000000000
MOV rax,864000000000
MOV qword [v_dummy1],rax
; dummy2.q = #FTTicks_per_Day
MOV rax,864000000000
MOV qword [v_dummy2],rax
; var1 = dummy1.q / dummy2.q
MOV r15,qword [v_dummy1]
PUSH qword [v_dummy2]
MOV rax,r15
POP rcx
CQO
IDIV rcx
MOV r15,rax
MOV qword [v_var1],r15
; var2 = dummy1.q / #FTTicks_per_Day
MOV r15,qword [v_dummy1]
MOV rax,r15
MOV rcx,711573504
CQO
IDIV rcx
MOV r15,rax
MOV qword [v_var2],r15
Code: Alles auswählen
; var2 = dummy1.q / #FTTicks_per_Day
MOV r15,qword [v_dummy1]
MOV rax,r15
MOV rcx,711573504
CQO
IDIV rcx
MOV r15,rax
MOV qword [v_var2],r15
Code: Alles auswählen
; var2 = dummy1.q / #FTTicks_per_Day
MOV rax,qword [v_dummy1]
MOV rcx,864000000000 ;Edit2: der Richtigkeit halber wurde der richtige Wert eingesetzt EndEdit2
IDIV rcx
MOV qword [v_var2],rax