Skocz do zawartości

Pomocna odpowiedź

Napisano

Jakie książki o programowaniu niskopoziomowym możecie polecić osobie, która chce dopiero rozpocząć swoją przygodę z językiem Assembler? Rozpocząłem kurs elektroniki poziom 1 od Forbota i chcę połączyć naukę elektroniki z programowaniem niskopoziomowym. Jeżeli znacie dzieła merytoryczne i wyczerpujące temat, to chętnie poznałbym ich nazwy. Równolegle chcę uczyć się programowania w języku C, ale znalazłem już dobrą książkę na jego temat.

Zależy, co się chce dokładnie programować w asemblerze. Mikrokontrolery? Wtedy warto zacząć od np. AVR (te starsze modele AVRów  mają prosty asembler i wszystko da się łatwo znaleźć wszystko w dokumentacji mikrokontrolera) lub ARM. A może zwykłe procesory np. x64? Każda architektura procesorów ma inny asembler. Zanim się pozna asembler, należy wiedzieć jak działa procesor w środku i znać cechy danego procesora, który się programuje. W ogóle, to asembler nie jest najlepszym wyborem, żeby poznawać go jako swój pierwszy język programowania. Lepiej zacząć od C. Natomiast nauka asemblera raczej jest prostsza niż języków średniego i wysokiego poziomu, bo on nie ma jakiejś złożonej skladni. Trudniejsze jest w nim napisanie czegoś sensownego, co zadziała. Jak już się zna jakieś podstawy programowania w asemblerze i zna się dany procesor, to pisanie programu sprowadza się do szukania rozkazów procesora w dokumentacji.

3 godziny temu, 74HC04 napisał:

Zależy, co się chce dokładnie programować w asemblerze. Mikrokontrolery? Wtedy warto zacząć od np. AVR (te starsze modele AVRów  mają prosty asembler i wszystko da się łatwo znaleźć wszystko w dokumentacji mikrokontrolera) lub ARM. A może zwykłe procesory np. x64? Każda architektura procesorów ma inny asembler. Zanim się pozna asembler, należy wiedzieć jak działa procesor w środku i znać cechy danego procesora, który się programuje. W ogóle, to asembler nie jest najlepszym wyborem, żeby poznawać go jako swój pierwszy język programowania. Lepiej zacząć od C. Natomiast nauka asemblera raczej jest prostsza niż języków średniego i wysokiego poziomu, bo on nie ma jakiejś złożonej skladni. Trudniejsze jest w nim napisanie czegoś sensownego, co zadziała. Jak już się zna jakieś podstawy programowania w asemblerze i zna się dany procesor, to pisanie programu sprowadza się do szukania rozkazów procesora w dokumentacji.

Chcę programować w Asemblerze głównie mikrokontrolery ESP32, potem dorzucę może STM32 i RaspberryPi. Nie będzie to mój główny język programowania, ale pomoże zrozumieć działanie i budowę układów.

@BetonowyBeton Cześć. Dobrze, że o to pytasz. Bez lania wody. Język ASM jest językiem pod konkretny układ. W pic masz inne polecenia, a w z80 inne. Dla czego? I tu zagłębiamy się w magię sterowania... ASM to 1 do 1 opcode. Przykład: instrukcja pic18f4550: MOVLW d'255' oznacza "0000 1110 KKKK KKKK", KKKK KKKK w tym przypadku oznacza 1111 1111 co równe jest 255 w systemie liczb binarnych. Dla innych procesorów taki kod może być inny.
Chcesz w to wejść dalej to zapraszam na parę lat nauki podstaw... Innymi słowy kolega "negatorx6" ma rację. Albo chcesz poznać podstawy i wziąć się do nauki jak inżynier , albo kleić kody, co jest proste i w wielu przypadkach nieefektywne. Sam wybierasz drogę i nikt nic nie narzuca. Jak masz ochotę to dam ci parę przykładów dla asseblera. Mogę tobie napisać prosty kod w asm na warunek if else, case itd... To nie jest trudne jak zrozumiesz logikę i granice fizyczną układów które chcesz programować, a reszta to fantazja...czyli  pisanie kodów.
PS: w języku C, co pisze kolega można też pisać w języku asm bezpośrednio dla procesora w twoim komputerze bezpośrednio, ale to już wyższa szkoła jazdy i nie wchodzimy w takie tematy...(Język C pisze automatycznie asm dla twojego procka...nie zawsze). Jak chcesz zacząć to prosty programator dla pic16f polecam... strona sprut.de . tam się uczyłem podstaw programowania PIC. masz ok 30 instrukcji. Nie pchaj się w coś bardziej złożonego bo się zniechęcisz... to samo przyjdzie z ciekawością.
Programowanie to pasja, inspiracja. Ty jesteś algorytmem a reszta to narzędzia. Program(kod) jest dobry tak,  jak programista, a nie jak komputer...
Nikt nie napisał kodu idealnego i każdy idzie na kompromis między używalnością, a wykorzystaniem zasobów. Więc nie będziesz pierwszym który popełnił błędy w programowaniu. to na zachętę i dla zrozumienia że rynek jest otwarty na nowe pomysły...
Pozdrawiam

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...