![]() |
Gesucht: Int128 Integer Arithmetik (Assembler/Delphi)
Hallo zusammen,
ich bin auf der Suche nach einer Sammlung von Arithmetik-Routinen für 128-Bit Integer (vorerst nur Grundrechenarten und Shiftoperationen, vorzeichenbehaftet). Im Netz habe ich dazu einen interessanten Artikel (Inline Assembler in Delphi, 128-bit integer arithmetic) gefunden, der jedoch leider nur Ausschnitte eines Quelltextes zeigt. Gefunden habe ich den Text ![]() Kennt oder hat jemand zufällig den Quelltext dieser Delphi-Unit? Oder vielleicht eine andere gute Int128-Bibliothek, am liebsten in x86-Assember/Delphi inline asm. Ich habe auch schon einiges für Delphi gefunden; allerdings waren diese entweder nicht sehr performant (String-Repräsentation der Int128-Zahlen) oder definieren einen unnötig komplizierten Datentyp (z.B. mit zusätzlichem Flagbyte fürs Vorzeichen o.ä.). Ich bin interessiert an einer generischen Darstellung wie:
Delphi-Quellcode:
(litte-endian format, MSB=Vorzeichen-Bit)
Type TInt128 = packed array[0..3] of LongWord
Vielen Dank im Voraus .sundance. |
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
Zitat:
Lang: Meines Wissens wird dadurch in Delphi erfolgreich die Optimierung verhindert; und das war wahrscheinlich die Idee hinter dem Wunsch Assembler zu verwenden. Wenn es Delphi sein soll/muss, sollte man es auch in Object Pascal schreiben. Delphi bietet seit einigen Versionen ![]() ps: ![]() |
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
Liste der Anhänge anzeigen (Anzahl: 1)
Hab ich mich mal vor ein paar Jahren dran versucht. (Siehe Anhang)
|
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
... I128.zip ...
Ist das für 32Bit oder 64Bit DelphiCompiler/ASM ? (Wenn es pur um Speed geht, wäre es "Vorzeichenlos" implementiert&gerechnet am schnellsten) |
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
Zitat:
|
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
Zitat:
|
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
Es geht hier auch nicht primär ums Optimieren auf die letzte Nanosekunde.
Bei einer Programmier-Aufgabe bin ich auf eine Int128-Darstellung gestoßen und wollte bei der Gelegenheit meine etwas angestaubten Assemblerkenntnisse etwas auffrischen. Leider kann ich die x64-Routinen nicht direkt verwenden (Delphi 7, 32-bit; kann leider auch keine "class operators") - aber vielleicht läßt sich ja was ableiten, was man zur Implementierung von Multipikation/Division mit Int128 brauchen kann. Irgendwie muss sich ja eine 128x128 oder 64x64 Operation mit 32-bit-MULs machen lassen. @Mod: Bitte den Thread-Titel korrigieren (Assembler/Delphi), damit die Suche danach funktioniert... |
AW: Gesucht: Int128 Integer Arithmetik (Assember/Delphi)
Zitat:
Addieren 128Bit: ADD, ADC, ADC, ADC Subtrahieren: SUB, SBB, SBB, SBB Multiplizieren: Nach der Methode:
Code:
, wobei man die Stellenverschiebung berücksichtigen kann. Ergebnis ist dann ein 256-Bit-Integer.
(a1+b1+c1+d1) * (a2+b2+c2+d2) = a1a2 + a1b2 + a1c2 + a1d2 + b1a2 + ... + d1d2
Dividieren: Lässt sich ebenfalls wie das schriftliche Dividieren impklementieren. Ich habe mir seinerzeit (in den 80-ern) so etwas für 32-Bit-Arithmetik gemacht. im Prinzip macht es keinen Unterschied zu jetzt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz