hi HIX CODER!
HC> Otleteket kernek binaris file tomoritesere (gyakorlatilag egy
HC> com-rol lenne szo). Feltetel az, hogy a kitomorito ne legyen
HC> nagyobb 100-150 bytenal, a tomoritesi arany masodlagos.
HC> Elmelet, tippek jobban erdekelnek, mint forraskod. Jobban szeretem
HC> magam csinalni a dolgokat... Ja, es persze asm-ben.
hmm... nos, a dolog nagyon egyszeru... a tomoritett file valahogy
ugy nez ki, hogy...
- egy startup resz, ami fogja, es atmasolja az egesz cs tartalmat
64k-val magasabbra... /majd ra is ugrik...
- egy kicsomagolo resz... errol majd kesobb..
- es a csomagolt program....
a kicsomagolo resz vegulis becsomagolt programot fogja kicsomagolni...
itt el kell gondolkozni azon, hogy milyen is az a program, amit
be akarunk tomorgetni... az en velemenyem, hogy inakbb szanj ra
tobbet, mondjuk 300-400 byteot, es csinalj meg egy normalis lzw,
lzh, vagy amit jelesik, olyan kicsomagolot, mert ha csak ilyen
100 byteokban gondolkozol, abba sokkal tobb egy rendundancia
figyelesnel nem fog beleferni... es az ilyen redundancia figyelesnek
mint tudjuk, nem tul nagy a hatasfokal...
hogy ertsd... ha nagy programot tomoritesz, az azonos karakterek
egymasutanjat ha kiveszed, kapsz max 90 szazalekos hatekonysagot...
lzw vagy lzh eseten ez elerheti az 50%-ot is...
azonban, ha kisebb proggykat tomorgetsz (<1k) akkor azokat
jo hatasfokkal nem fogod tudni tomoriteni, szinte biztos, hogy
sehogyan sem... ezeket a kicsi programokat jobban megeri 'kezzel'
optimalizalni, mint holmi tomoritest tenni rajuk... rengeteg hejet
sporolsz mar azzal is, ha monduk az adatokat a vegere teszed ugy,
hogy akarmi dw ?, meg tarsai... vagy ha a mov eax,1 hejett
azt irod, hogy sub eax,eax;inc ax... stb...
a nagyobb programoknal pedig sokkalta jobb hatasfokkal be tud
jonni egy nagyobb kicsomagolo, de jobban tomoritett adat...
na tovabbi jo kodolast mindenkinek... Mc
|