Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#30

Re: For-Schleife von 0 bis 7 fängt bei 8 an

  Alt 17. Dez 2004, 18:01
Zitat von jbg:
Zitat von negaH:
Die dazu benutzen Befehle sind NICHT schneller als die Befehle des unoptimierten Codes, das ist ein Irrtum.
Ein CMP ist eine SUB Anweisung wo das Ergebnis verworfen und nicht in ein Register geschrieben wird. Und ich bin da schon der Meinung, wenn das Programm keine tzsätzliche Substraktion ausführen muss, dass es ein klein wenig schneller läuft. Und wenn dann die Zählervariable nicht in ein Register eingelagert werden kann, dann ist da auch noch ein Speicherzugriff mehr. Und bei einer Schleife, die mehrere Tausend male durchlaufen wird, macht sich das dann doch leicht bemerkbar.

Du hast mich falsch verstanden

Ein zusätzlicher Befehl wie CMP kostet mehr Taktzyklen pro Schleife, trotzdem ist ein CMP genauso schnell wie ein SUB oder DEC. Zählt die Schleife gegen Null mit dem Befehl DEC so benötigt man nach dem DEC bei Überprüfung auf Null kein zusätzliches CMP mehr sondern kann die Flags direkt auswerten.
D.h. also die Zählweise gegen Null spart einen zusätzlichen Befehl. Die Befehle selber sind meistens gleich schnell ausgeführt !!

Gruß Hagen
  Mit Zitat antworten Zitat