jesli znasz sie na angielskim to polecam: http://agner.org/optimize/
jest to bardzo praktyczny kurs. nie uczy jak sie robi systemy operacyjne, zmienia tryby procesora itd. zorientowany jest glownie na tryb 32- bitowy (16- bit to i tak archaizm). skupia sie na optymalizacji kodu, przeplywu danych, organizacji struktur, itp itd czyli rzeczy dla ktorych wybiera sie programowanie w asemblerze.
ksiazki papierowe sa glownie przestarzale, tzn opisuja nieuzywane juz metody obslugi sprzetu, skupiaja sie na trybie 16- bitowym, srodowisku dos.
na sam poczatek przygody z asemblerem polecam jednak tutoriale iczeliona: http://win32assembly.online.fr/tutorials.html . opisuja podstawy programowania w windows w asemblerze. tutorial opiera sie na asemblerze masm (microsoftowy standard). dzieki nim mozesz dowiedziec sie jak dzialaja instrukcje sterujace, klasy, metody i inne rzeczy na najnizszym poziomie (a takze dlaczego niektore formy wywolan metod i funkcji sa efektywne a inne nie).
z asemblerow polecam stworzonego przez polskiego doktoranta matematyki ; ) fasma: http://flatassembler.net/
ps. w sumie to pogubilem sie troche z kolejnoscia ;) zacznij od tutoriali iczeliona. kurs agnera jest w sumie dla osob bieglych w asemblerze.
ps2: nie zajmuj sie trybem 16- bitowym (i bezposrednia komunikacja ze sprzetem jak za czasow dosa). to strata czasu ;) od razu ucz sie asemblera 32- bitowego pod windows albo pod linux (albo inne systemy, wazne zeby mialy tryb 32- bit i wlasne sterowniki).