Durch die Optimierung des Quellcodes eines Programms kann dieses schneller, effektiver und platzsparender arbeiten. == Allgemeines == === Datengrößen === Wordgröße des Prozessors verwenden, ist oft besser, als dies nicht zu tun (DWords bei i386, QWords bei x86-64). === Alignment === == Assembler == === Reduzierung der Codegröße === Die nachfolgenden Tricks eignen sich besonders zum Programmieren in [[Assembler]], wie es z. B. im [[Bootloader]] nötig ist. {| {{prettytable}} !Beschreibung !Optimierter Code |- |Register 0 setzen |xor eax, eax |- |Prüfen, ob Register 0 ist |test eax, eax jz ... |- |Multiplikation mit einer Zweierpotenz |shl eax, log2Faktor |- |Division durch eine Zweierpotenz |shr eax, log2Divisor |- |Beliebige Multiplikation |imul eax, [Faktor_1], [Faktor_2] |- |Schleife |mov ecx, [Anzahl_Wiederholungen] von_vorn: ; ... loop von_vorn |} === Steigerung der Effektivität === ==== PUSHA / POPA ==== Ist es schneller jedes Register einzeln zu pushen, oder besser pusha? == Hochsprachen == === Optimierungstools === TODO == siehe auch == * [[Ausgabe_8#Tipps_.26_Tricks|Ausgabe 8]] == Weblinks == *http://www.intel.com/Assets/PDF/manual/248966.pdf [[Kategorie:Stub]]