Assembler in eine C Dll einbinden
-
Hallo !
Ersteinmal habe ich eine generelle Frage:
It es ohne weiteres Möglich Assembler mit "all seinen Vorteilen" in eine C Dll einzubinden ???Sinn:
Ich bin dabei ein "Krypto-System" zu entwickeln und wollte einige kleine Operationen (ersteinmal) in Assembler auslagern, da ich mir denke das diese sehr viel schneller ausgeführt werden würden. Bei den Funktionen handelt es sich ersteinmal und simple Addition, Multiplikation, ... und Modulo Operationen zweier Zahlen.
Macht das Sinn und bringt mir das echte Vorteile ???P.S.: Würde mich über jede hilfreiche Antwort freuen ...
Gruß Michael
-
Michael__W. schrieb:
Ersteinmal habe ich eine generelle Frage:
It es ohne weiteres Möglich Assembler mit "all seinen Vorteilen" in eine C Dll einzubinden ???Drfte nichts dagegen sprechen
Sinn:
Ich bin dabei ein "Krypto-System" zu entwickeln und wollte einige kleine Operationen (ersteinmal) in Assembler auslagern, da ich mir denke das diese sehr viel schneller ausgeführt werden würden. Bei den Funktionen handelt es sich ersteinmal und simple Addition, Multiplikation, ... und Modulo Operationen zweier Zahlen.
Macht das Sinn und bringt mir das echte Vorteile ???Dinge wie addition, multiplikation etc. machen keinen sinn einzeln auszulagern, im Gegenteil es wird langsamer, wenn du keine inline-Funktionen benutzt. Der Compiler generiert für sowas triviales definitiv dasselbe. Interessant wirds erst, wenn du kleine Teile des Algorthmuses in Assembler realisierst, eventuell sogar unter zuhilfenahme von MMX/SSE/3DNOW, da kannst du definitiv was mit reißen.
-
Danke für die Antwort.
Schade, ich dachte einfache Rechoperationen würden auch schon an Geschwindigkeit gewinnnen.Dinge wie addition, multiplikation etc. machen keinen sinn einzeln auszulagern, im Gegenteil es wird langsamer, wenn du keine inline-Funktionen benutzt. Der Compiler generiert für sowas triviales definitiv dasselbe. Interessant wirds erst, wenn du kleine Teile des Algorthmuses in Assembler realisierst, eventuell sogar unter zuhilfenahme von MMX/SSE/3DNOW, da kannst du definitiv was mit reißen
Das glaube ich auch.
Problem ist nur, das ich in C/C++ auch noch etwas wackelig bin und noch nicht wirklich mit Assembler mich auseinandergesetzt habe. Also ist das auslagern ersteinmal nicht möglich.P.S.: Ist es eigentlich ein großer Unterschied zwischen dem Erlernen einer Hochsprache wie C/C++ und Assembler ?
Gruß Michael
-
Ja.
Solange du kein Assembler-Profi bist, wirst du mit Assembler-Code eh so gut wie nichts an Geschwindigkeit rausholen können. Die heutigen C++ Compiler optimieren ziemlich gut und benutzen auch CPU-Features wie MMX/3DNOW/SSE/SSE2.
Aber wie gesagt, als Assembler-Profi könnte man MMX/SSE etc. eventuell geschickter einsetzen als manche Compiler.