Ich glaube nicht, dass mit den Standard ASM Befehlen ich überhaupt was rausholen kann.
"was rausholen" ist das Stichwort...
Mal angenommen, die Berechnungen für einen Filter dauern 300 Millisekunden. Dann hat der Programmierer ggf. noch einige Compilerflags gesetzt, und das sind die einzigen Stellschrauben, an denen er drehen kann, wenn (und ja, WENN(!) ) der Algorithmus ausoptimiert ist!
Schaut man sich dann an, was der Compiler gemacht hat, wird man feststellen, daß bspw. für "Standardfunktionen" wie Sinus/Cosinus/Wurzelziehen/uswusf. ein API-Call bzw. ein Call der "eigenen" Bibliotheken erfolgt. Dort wiederum wird u.a. sämtliches Errormanagement betrieben, was sich die Bibliothekenbauer in den letzten 30 Jahren nur vorstellen konnten, um ALLE vorstellbaren Fehler des Programmierers abzufangen und auszuwerten und anzuzeigen, damit um Himmels Willen nur kein Absturz bei irgendeinem Programm erfolgt. Das ist idR auch gut so, da meiner Erfahrung nach Programmierer sich sehr gerne darauf verlassen, dass sie absolut keine Fehler machen...
Weiterhin angenommen, der Programmierer weiß was er da tut, kann er dann, statt die "superduper-absolut-Hochsicherheits-volldeppensichere-Sinus-Bibliotheksfunktion", welche "nur" 550 Prozessortakte benötigt, auf die vom Prozessor zur Verfügung gestellte Sinusfunktion zurückgreifen, welche diese Berechnung in meinetwegen 50 Takten abwickelt.
Bei einem Full-HD-Bild mit ca. 2e6 Pixeln macht das bei 550 Takten/Sinusberechnung über den Daumen 1e9 Takte, bei 2Ghz Prozessortakt dauern alle Berechnungen somit ca. eine halbe Sekunde!
Zwingt man nun, üblicherweise durch "inlinen" von Assemblercode, den Compiler zum Verwenden des fsin-Befehls der FPU, reduziert sich nur dadurch die Laufzeit des Filters um einiges....
Das alles kann man aber nur dann "optimieren" wenn man sieht und versteht, was der Compiler macht. Einige Compiler sind richtig gut, andere eher nicht. Heutzutage würde ich mich bei "Standard-Berechnungen" nicht mehr mit einem Compiler anlegen wollen, allerdings gibt es imho nur extrem wenige Compiler, welche bspw. die seit Jahrzehnten verwendbaren SIMD/SSE-Befehle auch umsetzen....und da ist dann auch mal der Faktor 3-4 an Laufzeiteinsparung drin, wenn man diese "richtig" einsetzt.
Wer als Hobbyprogrammierer sich dieses "Handoptimieren" antuen will, ist ja eine ganz andere Frage
Eukalyptus hat da ja schon einiges vorgelegt ![]()