Witam, na uczelni uczyliśmy się assemblera w środowisku Linux, dokładnie openSUSE i powiem szczerze, że podziwiam ludzi, którzy odnajdują się w tym systemie, ja tam nie czuję się najlepiej, wszystko tam zbyt różni się od poruszania w systemie Windows i tym samym można to porównać z próbą korzystania z łazienki u obcej osoby :P - wiem marne porównanie :P.
Przechodząc do sedna, chciałbym rozpocząć naukę assemblera w systemie operacyjnym Windows XP, jak powinienem rozpocząć naukę? Głównie chodzi mi o informacje odnośnie architektury no i z jakich narzędzi mam skorzystać? Wiem, że na google znajdę sporo informacji na ten temat, ale chciałem się zapytać pod kątem pisania programów hybrydowych, nie wiem nawet czy coś takiego jest możliwe do wykonania w Visual Studio 2010 Express czy tam Ultimate.
Też interesuje mnie kwestia różnicy architektury procesora, ja korzystam z procesora AMD, ale jakoś na zajęciach korzystaliśmy z procesorów Intel a ja w domu mogłem wykonywać te same zadania na procesorze AMD? Jest to dla mnie czarna magia nie rozumiem jak to jest możliwe skoro te architektury się podobno różnią? (nie wiem jak to działa) To tak w ramach dygresji.
Pytam tutaj programistów, ponieważ mam nadzieję, że nakierujecie mnie co powinienem przeczytać, żeby zrozumieć i używać assemblera w systemie operacyjnym Windows :). Wiem też, że od czasu, kiedy komputery są szybsze zainteresowanie assemblerem maleje, ale mam nadzieję, że kilka specjalistów z tej dziedziny znajdzie się i podzielą się oni wiedzą na ten temat.
Zainteresowałem się tematem, ponieważ podobno czasami można zaoszczędzić bardzo dużo mocy obliczeniowej czy też pamięci wykorzystując rozwiązania hybrydowe (zoptymalizowany kod assemblera w połączeniu z rozwiązaniami wysokiego poziomu).
Ja docelowo jestem zainteresowany tylko rozwiązaniami w językach C/C++/C# i właśnie w nich chciałbym się nauczyć stosować rozwiązania hybrydowe.
Może też ktoś będzie mógł mi polecić literaturę z tej dziedziny (w języku polskim ewentualnie angielskim jeśli jest to bestseller). Interesują mnie też materiały dotyczące rozbierania prostych programów na instrukcje assemblera w celu odtworzenia programu (np. tworzę prosty program na dodawanie, dokonuję deasemblacji i próbuje go odtworzyć - też tym samym chciałbym się nauczyć metod pozwalających na utrudnienie tego procesu w celu pisania później programów niepozwalających na łatwe "crack-owanie", chociaż utrudnić, bo wyeliminować się chyba nie da?
Z góry dziękuję za pomocne informacje.