olo16 napisał(a)
- Zna ktoś jakiś dobry kurs asm na początek?
Większość ludzi poleca http://rudy.mif.pg.gda.pl/~bogdro/ i dla Windows tutoriale Iczeliona. Ja skłaniam się ku samym manualom Intela i debuggerowi.
olo16 napisał(a)
- Jakiego kompilatora najlepiej używać? Bo jest tego sporo, a widzę że każdy różni sie trochę składnią.
W starych tutorialach poleca się MASMa, lepiej jednak sięgnąć po coś, co nie zatrzymało się w rozwoju, nie ma kupy bugów i jest przenośne - polski FASM. Całkiem niezła dokumentacja, spora społeczność, ciągły rozwój - to jego atuty. Chociaż ma otwarty kod to nie polecam tam zaglądać, ani to czytelne, ani efektowne/efektywne. Swoją drogą FASM 2.0 powstaje zupełnie jak Coyote Forever...
olo16 napisał(a)
- Jak jest z przenośnością kodu? Czy kod skompilowany na moim komputerze odpali poprawnie tylko na kompie z identycznym procesorem? Czy ma to też związek z formatem skompilowanego pliku - słyszałem że .com są nieprzenośne w ogóle, ale .exe chyba powinny być, w końcu to ogólny windowsowski format. Ale że jest wiele odmian plików .exe - jaki powstaje z assemblera? PE czy jakiś inny?
Słyszałeś o czymś takim jak x86? To ogólna architektura, do której kolejne generacje procesorów wprowadzają rozszerzenia - Pentium III wprowadził SSE, Pentium 4 SSE2 i potem 3 itd. Skoro programy pisane w C/C++ możesz przenosić pomiędzy komputerami to dlaczego z assemblerem miałoby się nie dać? Pamiętaj, że asm to tylko tekstowa reprezentacja kodu maszynowego, generalnie wspólnego dla całej rodziny procesorów. COM były przenośne w podobnym stopniu co PE. Exe (te Windowsowe) to obecnie wyłącznie pliki PE/PE32+ (tak jak dll, sys, ocx itd.), kiedyś jeszcze LE/LX był wspierany.