Durch die Optimierung des Quellcodes eines Programms kann dieses schneller, effektiver und platzsparender arbeiten.
== Allgemeines ==
=== Datengrößen ===
Die Wortgröße des Prozessors zu verwenden ist oft besser als dies nicht zu tun (32 Bit bei i386, 64 Bit 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]]