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],r15Code: 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],r15Code: 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