ASM kódoptimalizációs verseny - Eredményhirdetés |
Meg kell mondanom, nagyon szomorú vagyok... A jelentekezok száma nagyon kicsi volt... pontosabban csak egy vállalkozó szellemű egyén volt. Szabby a Stony Cracker Team-ből. Nem tudom mi van a mai fiatalokkal, miért nem becsülik az assemblert. Pedig nem szabad elfelejteni, ez az alapja mindennek! Es már csak pusztán tiszteletbol illik tudni... Visszatértve a versenyhez... Az eredeti feladat így hangzott: A cél, egy elore megadott program minnél kisebb, futattható változatát létrehozni. Egy egyszeru kis programról van szó, amely megnézi, hogy a DosNavigator rezidens-e vagy sem, és ezt tudatja a felhasználóval. A vereny kikötése még az volt, hogy egy külso szemlélo ha elindítja a programot, ugyan azt lássa mint amit ez a progy csinál, tehat vizuálissan egyezniük kellet, magyarul ugyan azt kellet hogy kiíra a képernyore, mint az eredeti progi. Az alap progi forrása itt látható (orginal.asm), melyben megtalálsz minden további lényeges információt amire szükséged lehet. (ez a program lefordítva egy 108 bytes COM-ot ad) ;DosNavigator checker. code segment xor
ax,ax ;
If DN not found @2: xor
ax,ax ;
If we found DN... Szabby-nak 72-ra sikerült összenyomnia a programot, az ő változatát itt talalod. Ő is rájött egy két dologra, de azért még maradt egy pár dolog, ami figyelmét elkerülte. (de azért minden dicséretet megérdemel, mert ő legalább megpróbálkozott vele) A legkisebb, mindössze 60 byteos programot egyik jóbarátommal és mentorommal írtuk meg, MiB-el. Akkor lássuk az optimalizált programot (winner.asm), majd aztán a magyarázatra is sor kerül. code segment start: mov
ah,99h mov
ah,09h ;
Print message function or
bx,bx ;
Does bx==0? mov
dl,offset msg3-100h ; Because
dh alredy setted ret Ez a program 60 byteos
(106-60=46!). Nézzük, hogyan optimalizáltuk, miket vettünk figyelembe, milyen
módszereket alkalmaztunk: Végül is ennyi volt az egész... igaz egy másfélhetet elszórakoztunk vele... a végén byte-ról byte-ra faragtuk le a progi nagyságát... Szerintünk rövidebre NEM lehet megírni..... ha mégis sikerülne valakinek, akkor annak egy este én állom az ital számláját.... Formater [FCF] |
©2000. Fearless Criminal Force. |