Seite 2 von 2

Verfasst: 13.12.2006 13:59
von AND51
Ich glaube, er meint mich.

Danke für die Info. WO gibt es denn so ein ganz gemütliches ASM tutorial, das mich nicht sofort überfordert ?

Mein Ziel mit ASM ist, mein Programm an einigen Stellen zu optimieren.

Nur als Beispiel: Sagen wir mal ich will die Variable 'bert.l=15' inkrementieren oder einen Wert hinzufügen. Mit PB würde das z. B. 3 ms dauern, den Wert hinzuzuaddieren, mit "INC bert" würde es aber nur 1 ms dauern. (Wie gesagt, nur als Beispiel)

Solche optimierungen meine ich. Solche "Tricks" will ich mir aneignen. Wo gibt es denn solche Infos? Ich habe natürlich schon gegoogled, aber was besseres als meine Delphi-Seite habe ich nicht gefunden. PB-Hilfe verweist auf www.flatassembler.net, aber die Seite ist ja außerdem auf engisch...

Verfasst: 13.12.2006 14:31
von Helle
In Google mal "Agner Fog" eingeben und das Optimierer-Herz lacht. Ist in Englisch, aber man bekommt mit, was gemeint ist.

Gruss
Helle

P.S.: Über die Tücken von inc und dec bei Test auf Überlauf habe ich mich hier irgendwo schon mal ausgelassen...

Verfasst: 13.12.2006 19:08
von manunidi
Es heist nicht das ein assembler befehl schneller ist als z.b. 3!

Wenn man ich c++ z.B. i++ schreibt(erhöhrt i um eins)

dann macht der compiler daraus einen 3zeiler! Obs schneller ist oder nicht wäre schön zu wissen...

Verfasst: 13.12.2006 19:48
von Thorium
manunidi hat geschrieben:Es heist nicht das ein assembler befehl schneller ist als z.b. 3!

Wenn man ich c++ z.B. i++ schreibt(erhöhrt i um eins)

dann macht der compiler daraus einen 3zeiler! Obs schneller ist oder nicht wäre schön zu wissen...
Das wird in erster Linie davon abhängen wieviele Tackte ein Befehl benötigt. Müsste man bei Intel oder AMD aber einsehen können. Da schwirren bestimmt irgendwelche Datenblätter auf der Website rumm.

Verfasst: 13.12.2006 20:40
von Helle
Ich bin ja sonst nicht so, aber:
Oh Herr, schmeiss Hirn vom Himmel :mrgreen: !

Gruss
Helle

Verfasst: 13.12.2006 20:48
von Kaeru Gaman
> dann macht der compiler daraus einen 3zeiler!

o_O ? wieso sollte er?

das ist ein einziger ASM-befehl, nämlich INC (und zwar auf die speicherstelle,
auf die der pointer zeigt, die der Varname ist)