Achtung: Diese Angaben sind veraltet, bitte immer den letzten Post anschauen!
http://mypage.bluewin.ch/remimeier/webs ... mierer.zip
KEINE Garantie auf totale Perfektion (d.h. es kann Bugs enthalten)
Dieses kleine Plugin optimiert den AsmOutput auf folgende Probleme:
- x=x (unnütz, ich weiss...)
- a-1 (jep, mit DEC)
- c - a / d (teilweise)
- a=b%2
- a%2
Das Plugin muss in den Unterordner Plugins von jaPBe kopiert werden. Es erzeugt dann bei Aufruf eine Optimiert.exe im Compilers\ Verzeichnis von PB. Dabei ist folgendes zu beachten:
- Sourcecode muss abgespeichert sein
- Sourcecode darf keine IncludeFiles besitzen (d.h. Cutterplugin benutzen!)
- Der Ordner der Exe wird dann PB\Compilers\ sein! (wegen Include* Zeugs)
- Es werden keine Fehlermeldungen des Compilers angezeigt (ausser man ist Superman und kann beim kurzen aufblitzen des cmd was sehen )
Hier ein kleiner Testcode (natürlich ein unrealistisch optimales Beispiel ):
Code: Alles auswählen
a = 5
b = 6
c = 7
d = 3
#N = 99999999
Delay(1000)
time1 = ElapsedMilliseconds()
For z = 1 To #N
a = a
b - 1
c - a / d
c = a % 2
c = c % 2
Next
time1 = ElapsedMilliseconds() - time1
time2 = ElapsedMilliseconds()
For z = 1 To #N
!DEC [v_b]
!MOV Ebx,dword [v_c]
!MOV Eax,dword [v_a]
!MOV Edi,dword [v_d]
!CDQ
!IDIV Edi
!SUB Ebx,Eax
!MOV dword [v_c],Ebx
!MOV Eax,dword [v_a]
!AND Eax,1
!MOV dword [v_c],Eax
!AND dword[v_c], 1
Next
time2 = ElapsedMilliseconds() - time2
MessageRequester("", Str(time1)+" "+Str(time2))
Ohne Optimierer:
7453ms(PB) gegen 2453ms(ASM)
Mit Optimierer:
2578ms gegen 2500ms
Viel Spass
remi
PS: War nur n Zeitvertreib, deshalb nicht zu viel erwarten!