[ascoders] flasm
- From: André Michelle <am@xxxxxxxxxxxxxxxxxx>
- To: <ascoders@xxxxxxxxxxxxx>
- Date: Thu, 4 Mar 2004 08:57:03 +0100
Ich habe gestern nacht meinen ersten Exkurs in die Assemblerwelt gemacht.
Die Resourcen sind sehr spärlich, konnte aber hier und da schon innerhalb
von Schleifen 2 Zeilen zusammenschrumpfen und gleich ein paar
Performancepunkte gewinnen.
Es bleiben ein paar Fragen, die auf der Seite
http://www.nowrap.de/flasm.html unbeantwortet blieben. Das schwierigste an
dem Assemblercode ist das Auslesen, welcher 'Wert" gerade oben im Stack
liegt. Genau das interessiert mich. Wer baut den Stack wie um ?
Beispiel: Innerhalb einer Funktion(2) stehen folgenden Zeile zu Begin:
push r: this, 'map'
getMember
Scheint mir einfach. Das Register r:this wird in den Stack gepusht. Die
Eigenschaft 'map' wird oben draufgesetzt und dann der Wert (bzw.
MovieClipInstanz) ausgelesen. Was genau liegt jetzt noch im Stack ? Nur ein
Wert oder ? ( 'map' ).
function2 (r:2='y') (r:1='this')
Wozu speichert Flash 'this' als Register r:1, um dann nicht mehr damit zu
arbeiten ? Witzigerweise wird die Performance messbar schlechter, wenn ich
r:this gegen r:1 austausche.
Jetzt noch etwas dicker.
normaler AS Code:
holder._rotation = deg;
holder._xscale = holder._yscale = scl;
Riecht nach Flasm Arbeit :o)
der erste Output:
push r:this, 'holder'
getMember
push '_rotation', r:deg
setMember
push r:this, 'holder'
getMember
push '_xscale', r:this, 'holder'
getMember
push '_yscale', r:this, 'scl'
getMember
setRegister r:0
setMember
push r:0
setMember
Das geht mit Sicherheit besser, oder ? zB. zuviele 'getMember' für 'holder'.
push r:1, 'holder'
getMember
setRegister r: 5 // frei ausgesucht
push '_rotation', r:deg
setMember
push r:5
push '_xscale', r:this, 'scl'
setMember
push '_yscale', r:this, 'scl'
setMember
2 FPS mehr :o)
Aber da unten geht doch mehr, oder ?
Wie schaffe ich es, 'holder' dauerhaft im Stack zu halten ? Das ist
eigentlich die wichtigste Frage, denke ich, um flasm code richtig winzig zu
bekommen.
--
aM
------------------------------------------------------
Archiv : http://www.freelists.org/archives/ascoders/
Optionen : http://www.freelists.org/list/ascoders
------------------------------------------------------
- Follow-Ups:
- [ascoders] Re: flasm
- From: André Michelle
- [ascoders] Re: flasm
- From: Ralf Bokelberg
- References:
- [ascoders] Flex Plug-in for WebSphere Studio
- From: Ralf Siegel
Other related posts:
- [ascoders] Re: flasm
- From: André Michelle
- [ascoders] Re: flasm
- From: Ralf Bokelberg
- [ascoders] Flex Plug-in for WebSphere Studio
- From: Ralf Siegel