Um den Datentyp long von Java in meinem JIT Compiler einzubauen, müsste ich wissen, wie ich signed 64 Bit Integer multipliziren, dividieren und den Modulo berechnen kann.
Addieren und Subtrahieren ist ja kein Problem, das kann man ja einfach so machen:
Addition 5 + 7
Subtrahieren geht auch ähnlich.
Multiplizieren macht der GCC so:
Multiplikation 5 * 7
Ich verstehe aber auch nicht wirklich warum.^^;;
Addieren und Subtrahieren ist ja kein Problem, das kann man ja einfach so machen:
Addition 5 + 7
Code: [Auswählen]
mov eax, 5 ;low-dword des 64bit ints
mov edx, 0 ;high-dword des 64bit ints
add eax, 7 ;low-dword adden
adc edx, 0 ;high-dword mit carry addenSubtrahieren geht auch ähnlich.
Multiplizieren macht der GCC so:
Multiplikation 5 * 7
Code: [Auswählen]
; in ecx ist das low-dword (enthält 5)
; in ebx ist das high-dword (enthält 0)
movl %ecx, %eax
movl %ebx, %edx
shldl $3, %eax, %edx
sall $3, %eax
subl %ecx, %eax
sbbl %ebx, %edxIch verstehe aber auch nicht wirklich warum.^^;;

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert