2.12.2003

ASSEMBLER

Filed under: Uncategorized — nax @ 23:07

Tak poslednich par dnu me skola plne zamestnava. Jednak bych rad uz mel hotovou tu softwarovou lupu co mame zadanou jako ulohu5 abych mohl zacit makat na semestralce (mam udelat tcp sniffer v assembleru), ale hlavne jsem se zasekl na tom, ze jsem se snazil tuhle verzi ulohy3 optimalizovat a nekde tam najit alespon 1B o ktery by sla zkratit. Cimbal na poslednim cviku tvrdil, ze on na to sednul a po 2 hodinach usilovne prace to zkratil dokonce o 3B! Ja jsem se snazil cely vikend, ale nic. Celkem 3x jsem myslel ze jsem na to prisel, ale budto to nebyla povolena operace a nebo to nakonec zase vyslo na stejne.

Tak aspon sem dam nejake odkazy co jsem nejvic pouzival. Pokousel jsem se hledat nekde nejake rady jako se takove optimalizace na velikost kodu delaji, ale ticho po pesine. Jedine co jsem nasel je tenhle kratouckej odstavecek. No ono je pravda ze zadne obecne rady ani napsat nejdou. Ono jde o to, ze pokud by nejake byli, tak by je vsichni pouzivali (jako treba xor ax,ax pro nulovani ax, ze?), takze vetsina optimalizaci se dela na zaklade znalosti toho co ma byt vysledek a treba na zaklade aktualniho stavu registru (treba pro inicializaci pouzit lahf) atd.

Me se pri tom ladeni osvetcilo mit otevrene nasledujici veci v mozille: Jednak Instruction set primo od intelu, jehoz vyhodou je, ze u kazde instukce je primo napsane ktera kombinace ve strojaku zabyra kolik B. Druhak je to manualu nasmu. Tam jsou zase uvedene, ktere instrukce jsou dostupne na jakem processoru (nase programy musi byt spustitelne na cemkoli od 8086 vys).

Comments are closed.

Powered by WordPress