Książka do nauki asemblera

  1. Jaką polecacie książke do nauki asemblera od podstaw?

  2. Co sądzicie na temat książki Peter Abel “Asembler IBM PC programowanie”?

  1. Dowolną tłumaczącą składnię kompilatora, którego będziesz używał + dokumentację procesora na stronie Intela.

  2. Przeterminowana lekko. Autor przemilcza niektóre istotne szczegóły co czyni tą książkę niezbyt strawną dla początkujących. Z drugiej strony nie jest też dla zaawansowanych. Generalnie jest zwyczajnie słaba (i stara).

Generalnie nauka asma nie ma jakiegoś większego sensu. Optymalizacja kodu na poziomie pojedynczych instrukcji w większości przypadków będzie lepiej wykonana przez kompilator niż przez człowieka. Sytuacja zmienia się jeśli zamierzasz oprogramowywać systemy wbudowane albo będziesz pracował z jakąś zupełnie unikatową architekturą, do której nie ma dobrych narzędzi. W tym drugim przypadku jednak nie zadawałbyś w ogóle pytania.

Gdybyś zapytał czy warto rozumieć jak działa procesor, poznać architekturę x86, x64 albo PPC - odpowiedziałbym, że tak. Obecnie jednak sama umiejętność programowania w asmie nie jest specjalnie poszukiwana. Skoro zadajesz to pytanie to znaczy, że nie jesteś przekonany, czy warto. W takiej sytuacji z pełnym przekonaniem mówię: nie warto. Nie teraz. :slight_smile:

PS. Tajemniczym głosującym na tak, którzy pacnęli odpowiedź bez uzasadnienia gratuluję. Dowodzicie, że głosowania nie są nigdy miarodajne. Zagłosować może bowiem każdy.

Chyba źle mnie zrozumiałeś Ryan,ja chcę się nauczyć asemblera, a tą ankiete dałem tylko z ciekawości, aby sprawdzić co myślą o asemblerze inni.

Co źle zrozumiałem w “Czy warto uczyć się asemblera?”? Nie warto. Jeśli chcesz - jasne, śmiało. Zawsze to jakaś wiedza. W znacznej mierze będzie to jednak czas zmarnowany. Więcej ciekawych i przydatnych rzeczy na temat architektury dowiesz się z w/w dokumentów Intela. :slight_smile: Jeśli koniecznie chcesz się uczyć asemblera - wybierz przynajmniej platformę na której wskazane jest używanie asma. Kup sobie dev boarda z układem z rodziny Intel 8051, ATmega albo któregoś z nowych Zilogów.

A moim zdaniem warto uczyć się asemblera. Dlaczego? Dlatego, że programowanie w asemblerze jest jak rozwiązywanie zadań z fizyki. Niby więcej się nauczysz czytając teorię, ale dogłębniej poznasz fizykę właśnie poprzez rozwiązywanie zadań.

Poza tym znam sporo osób (studentów), którzy woli programować w asemblerze aniżeli w C.

Z książek do nauki podstaw asemblera to polecam “Mikrokontrolery Nitron” Kościelnika - jest tam trochę błędów, ale jest ona przystępnie napisana. Aby pisać w asemblerze musisz wiedzieć jak działają uP/uC i w tej książce jest to też wyjaśnione (od postaw). Ze starszych pozycji mogę polecić “Mikroprocesor Z80” Kaczmarczuka.

Ale to tak jest ze wszystkim :slight_smile:

Ale co programować?

Wszystko zależy od tego, co chce się robić w życiu. Asembler się przydaje bardziej elektronikom niż informatykom, jeśli ktoś to lubi, to życzę powodzenia. No chyba, że ktoś chce się nauczyć asemblera dla samej idei, żeby umieć to, czego większość nie umie. Jak dla mnie szkoda zachodu :slight_smile:

Programować mikroprocesory/mikrokontrolery.

Pytanie jest czy warto się uczyć programowania w asemblerze a nie czy warto uczyć się asemblera na korzyść np. C.

Z tym, że asembler przydaje się bardziej elektr. niż infor. to się zgodzę, ale co to ma wspólnego z tematem?