QWORD-Division mit Inline-Assembler

Dieses Thema im Forum "Programmieren" wurde erstellt von Tueftli, 8. August 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Tueftli

    Tueftli Kbyte

    Registriert seit:
    4. Dezember 2001
    Beiträge:
    276
    Hi!
    Vor kurzem hab ich in C ein Programm geschrieben, das mir
    eine beliebige 64-Bit Zahl in Primfaktoren zerlegt.
    Nun habe ich die Grenzen der Programmoptimierung erreicht und
    möchte die geschwindigkeitskritische Funktion des Programms mit dem Inline-Assembler schreiben.
    Microsoft liefert zum Abspeichern einer 64-Bit-Zahl den
    Datetyp "unsigned _int64".
    Aber: Da die Allzweckregister alle nur 32 Bit lang sind und die Zahl so über 2 Register abgespeichert werden muss, habe ich Probleme mit der Ganzzahldivision.
    Der Dividend ist 64 Bit lang, der Divisor maximal 32 Bit.
    Bei der Operation soll das Divisionsergebnis und der Rest in den Registern übrigbleiben.
    Wer weiß einen effizienten Algorithmus oder kann mir Tips zur Realisierung geben (Linksshiften is ok, aber über mehrere Register?)?
    Gibts spezielle Befehle (MMX,SSE...)?

    Danke! Ciao!
    [Diese Nachricht wurde von Tueftli am 08.08.2002 | 03:23 geändert.]
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen