Pracuję jako inżynier systemów. Odpowiadając na pytanie - moim zdaniem - oczywiście że tak. Nawet jeśli nie dla realnych projektów, to po to, by rozjaśniło to umysł. Współpracuje z programistami z których część nie ma zielonego pojęcia o działaniu komputera - nie wiedzą jak działa pamięć komputera, jak działa CPU, jak zwolnić RAM, etc. Cytując Stonogę "To jest dramat k****". Nauka zagadnień niskopoziomowych - działanie procesora, asemblera, nauka C - powinna stanowić credo każdego informatyka. Nie chodzi tylko o to by zarabiać ale i być kompetentnym. Tak ja uważam. Pomijam fakt, że przy pewnych zagadnieniach asembler jest wciąż żywy, jak programy rozruchowe czy miejsca gdzie serio liczy się czas. Można zresztą pisać w C i robić wstawki w asemblerze jak sam powiedziałeś.
Dzień dobry! 2:22 Jedna linijka kodu na kilka instrukcji asm? Kodowałem w 6502 i 68000 ale nie przypominam sobie. Były co prawda edytory dające możliwości tworzenia pseudoinstrukcji bazując na tworzeniu makr, ale to chyba nadal nie to, bo tam nadal jedna linijka kodu asm generowała jedną instrukcję kodu maszynowego. Dość podobnie z „operacjami atomowymi”, :) kiedyś wystarczyło zablokować choćby poprzez zwykłe SEI przerwań, by te nie wystąpiło w momencie zapisywania nowego wektora do dwubajtowego rejestru, który go przechowywał i w efekcie by przerwanie nie skoczyło gdzieś w odchłań pamięci. A po zapisaniu poprawnego wektora CLI i problemów nie było. Nie wiedzieć czemu później utrudniono to sobie poprzez „operacje atomowe”. :)
W asemblerze na ARM coś takiego się dzieje np. przy operacjach load/store z adresów ram. Wtedy w asemblerze piszemy load adres, a on nie może w instrukcji umieścić stałej 32-bitowej i rozbija na kilka instrukcji. Adres jest umieszczony we flashu i robi load adresu a potem load danej spod adresu. Będę to dokładnie omawiał w kursie i chyba zrobię też na ten temat filmik na yt, bo sam byłem zaskoczony kiedy pierwszy raz to odkryłem.
@@ucgosupl Dziękuję za odpowiedź. Nie kodowałem niestety nic w ARM, ale z tego co Pan opisał, to wygląda to bardziej na makro niż konkretny mnemonik wykonujący konkretną czynność (z podkreśleniem na wygląda :) ). Np w 6502 nie było operacji mnożenia i dzielenia, no może za wyjątkiem dwójki (ROL oper i ROR oper), ale można sobie było napisać makro by w 6502 mieć DIVU i realizować dzielenie. :) I wtedy jedna operacja (DIVU) realizowała kilka bądź kilkanaście linijek kodu na konkretnych danych wejściowych.
Język maszynowy (I poziomu) bezpośrednio wykonywany to wiedza dla magików komputerowych, wszyskie skoki, przerwania, adresowanie, stosy itp. to trochę za trudne dla laików. Sam pisałem któtkie programy w asm lecz przeszedłem na kopilowalne języki programowania, bo dały mi możliwość monetyzacji wiedzy, czyli zarabianie na programowaniu. Jeżeli tylko jesteś w stanie się podzielić wiedzą , to z góry dziękuję i pozdrawiam.😀
Oficjalnie rozpoczynam dyskusje: Assembler czy Assembly? Według mnie Assembly to język programowania a Assembler to program przetwarzający kod w Assembly na kod maszynowy. Końcówka -er zgadzałaby się z innymi nazwami programów takich jak: interpreter, compiler, linker, debugger, disassembler etc. Spotykałem się również z nazwą "język Assemblera" - w domyśle język którym posługuje się assembler i miałoby to jakiś sens ale nadal dziwnie brzmi. Osobiście pisałem pare programów (głównie firmware) do MC68K, ARM32 i obecnie ARM64 i jakoś zawsze mówiono Assembly. Co sądzicie?
Nawet o tym mam jedną lekcję do kursu. Po angielsku jest assembly language i assembly czyli język asemblera i asembler jako kompilator na kod maszynowy. I faktycznie jak szukamy informacji w necie to może powodować problemy. Potocznie mówi się asembler i zwykle z kontekstu wiadomo o który chodzi. Nie ma sensu używać długiej formy. A przy pisaniu używam spolszczonej formy czyli przez jedno s.
Powinno się mówić/ pisać język asemblera i program asemblujący ale najczęściej skracamy i używamy asembler a odbiorca z kontekstu powinien się domyślić o co chodzi
Ja zaluje, ze na poczatku lat 2000 kodowalem w Assemblerze. Moglem wykorzystac tamten czas na np. Web dev, czy Jave. Nigdy mi sie tamta wiedza nie przydala.
Jasne, jeśli idziesz w webdev to asemblera bym nie polecał. Najwyżej jako ciekawostka, żeby wiedzieć co się dzieje pod maską. Tutaj omawiamy temat pod kątem systemów embedded i asembler jako dodatek jest super.
poleć na profesce w kursie, każda instrukcja procesora (tak to nazwane?) po kolei niczego nie zapomnij, elo osobiście nie zamierzam ale na pewno się przyda przyszłym programistom assemblera :D
Dzięki za radę, dokładnie tak będzie. Rozumiem że chodzi o każdą instrukcję na każdą rodzinę procesora, po co zatrzymywać się na jednej :D A tak na serio to da się podejść do tematu pragmatycznie. Zawsze są grupy instrukcji odpowiadające za podobne operacje i tylko trzeba gdzieś listę instrukcji dorwać dla odpowiedniego procka.
VSCode ma w dzisiejszych czasach świetny dodatek do Assemblera. Nazywa się "ASM Code Lens". . Można skakać po labelach. . Widać od razu co, gdzie jest używane (nad zmiennymi wyskakuje licznik ile razy dana zmienna został wykorzystana, a jak się w to kliknie to pokazuje gdzie była użyta) . Szczególnie przydatne, gdy trzeba coś poprawić w przejętym kodzie sprzed ładnych paru lat, bo nikt inny nie chciał się tego podjąć.
Ja mam pytanko czy po technikum elektronicznym można przejść na embedded? Jestem bliżej 40 i co prawda studiować nie zamierzam aczkolwiek programować bym chciał. Pracuję jako electronic test technician w UK ale chciałbym się rozwinąć. Pozdrawiam
Jak najbardziej, nawet poruszałem ten temat już na kanale. Zobacz live o rekrutacji i filmik o przebranżowieniu na programistę embedded. Wszystko znajdziesz na tej playliście: th-cam.com/video/13a8wqFTYbw/w-d-xo.html
Ja bym nikomu nie radził szukać stanowiska programisty ASM. To język pomocniczy używany przez programistów C w pewnych konkretnych sytuacjach i uczysz się go raczej żeby być zatrudnionym jako programista C.
😆 Z nauką programowania jest jak z elektrownia atomową w polsce. 😂 No niby można ale po co ? 🤣 Nikt Biosu do swojego komputera pisał nie będzie ani nowego OS do Smartfona. Szczególnie że lepsze wersje AI czy nawet CHAT GPT4.5 już potrafią pisać proste mniej lub bardziej programy jak "Komputer" Enterpraisowy z TNG. 😅 Wiec czy warto wogule uczyć się programowania ? gdy jeden dobrze napisany program rozwiązuje problem w open-soursie a po chyba 3 latach i tak jego kod jest dostępny w freewarze. 😂 Wiec czy aby programowanie to nie jest wogule strata czasu ? I jedynie bezrobotni z nadmiarem czasu mogą się uczyć programowanie hobbistycznie. 🤔 😂😂😂
Uczyć kiedy zajdzie taka potrzeba
Maćku coż za metamorfoza! Na duży plus oczywiście. Pozdrawiam 😎
Pracuję jako inżynier systemów.
Odpowiadając na pytanie - moim zdaniem - oczywiście że tak. Nawet jeśli nie dla realnych projektów, to po to, by rozjaśniło to umysł. Współpracuje z programistami z których część nie ma zielonego pojęcia o działaniu komputera - nie wiedzą jak działa pamięć komputera, jak działa CPU, jak zwolnić RAM, etc. Cytując Stonogę "To jest dramat k****".
Nauka zagadnień niskopoziomowych - działanie procesora, asemblera, nauka C - powinna stanowić credo każdego informatyka. Nie chodzi tylko o to by zarabiać ale i być kompetentnym. Tak ja uważam.
Pomijam fakt, że przy pewnych zagadnieniach asembler jest wciąż żywy, jak programy rozruchowe czy miejsca gdzie serio liczy się czas. Można zresztą pisać w C i robić wstawki w asemblerze jak sam powiedziałeś.
Dokładnie tak!
Dzień dobry!
2:22 Jedna linijka kodu na kilka instrukcji asm? Kodowałem w 6502 i 68000 ale nie przypominam sobie. Były co prawda edytory dające możliwości tworzenia pseudoinstrukcji bazując na tworzeniu makr, ale to chyba nadal nie to, bo tam nadal jedna linijka kodu asm generowała jedną instrukcję kodu maszynowego.
Dość podobnie z „operacjami atomowymi”, :) kiedyś wystarczyło zablokować choćby poprzez zwykłe SEI przerwań, by te nie wystąpiło w momencie zapisywania nowego wektora do dwubajtowego rejestru, który go przechowywał i w efekcie by przerwanie nie skoczyło gdzieś w odchłań pamięci. A po zapisaniu poprawnego wektora CLI i problemów nie było. Nie wiedzieć czemu później utrudniono to sobie poprzez „operacje atomowe”. :)
W asemblerze na ARM coś takiego się dzieje np. przy operacjach load/store z adresów ram. Wtedy w asemblerze piszemy load adres, a on nie może w instrukcji umieścić stałej 32-bitowej i rozbija na kilka instrukcji. Adres jest umieszczony we flashu i robi load adresu a potem load danej spod adresu. Będę to dokładnie omawiał w kursie i chyba zrobię też na ten temat filmik na yt, bo sam byłem zaskoczony kiedy pierwszy raz to odkryłem.
@@ucgosupl Dziękuję za odpowiedź.
Nie kodowałem niestety nic w ARM, ale z tego co Pan opisał, to wygląda to bardziej na makro niż konkretny mnemonik wykonujący konkretną czynność (z podkreśleniem na wygląda :) ).
Np w 6502 nie było operacji mnożenia i dzielenia, no może za wyjątkiem dwójki (ROL oper i ROR oper), ale można sobie było napisać makro by w 6502 mieć DIVU i realizować dzielenie. :) I wtedy jedna operacja (DIVU) realizowała kilka bądź kilkanaście linijek kodu na konkretnych danych wejściowych.
Osobiście uczę się assemblera dla procesora do game boya, fajna zabawa :)
Język maszynowy (I poziomu) bezpośrednio wykonywany to wiedza dla magików komputerowych, wszyskie skoki, przerwania, adresowanie, stosy itp. to trochę za trudne dla laików. Sam pisałem któtkie programy w asm lecz przeszedłem na kopilowalne języki programowania, bo dały mi możliwość monetyzacji wiedzy, czyli zarabianie na programowaniu. Jeżeli tylko jesteś w stanie się podzielić wiedzą , to z góry dziękuję i pozdrawiam.😀
No przyznam się, że mi serce stanęło jak wymieniłeś te mity - myślałem, że je całkowicie obalisz 😂
Jak już znajdę taką cudowną receptę, żeby je obalić to dam znać :D
MacieeeK, to ty? ;-) GIT!
Oficjalnie rozpoczynam dyskusje: Assembler czy Assembly?
Według mnie Assembly to język programowania a Assembler to program przetwarzający kod w Assembly na kod maszynowy. Końcówka -er zgadzałaby się z innymi nazwami programów takich jak: interpreter, compiler, linker, debugger, disassembler etc. Spotykałem się również z nazwą "język Assemblera" - w domyśle język którym posługuje się assembler i miałoby to jakiś sens ale nadal dziwnie brzmi. Osobiście pisałem pare programów (głównie firmware) do MC68K, ARM32 i obecnie ARM64 i jakoś zawsze mówiono Assembly. Co sądzicie?
Nawet o tym mam jedną lekcję do kursu. Po angielsku jest assembly language i assembly czyli język asemblera i asembler jako kompilator na kod maszynowy. I faktycznie jak szukamy informacji w necie to może powodować problemy. Potocznie mówi się asembler i zwykle z kontekstu wiadomo o który chodzi. Nie ma sensu używać długiej formy. A przy pisaniu używam spolszczonej formy czyli przez jedno s.
Powinno się mówić/ pisać język asemblera i program asemblujący ale najczęściej skracamy i używamy asembler a odbiorca z kontekstu powinien się domyślić o co chodzi
Ja zaluje, ze na poczatku lat 2000 kodowalem w Assemblerze. Moglem wykorzystac tamten czas na np. Web dev, czy Jave. Nigdy mi sie tamta wiedza nie przydala.
Jasne, jeśli idziesz w webdev to asemblera bym nie polecał. Najwyżej jako ciekawostka, żeby wiedzieć co się dzieje pod maską. Tutaj omawiamy temat pod kątem systemów embedded i asembler jako dodatek jest super.
poleć na profesce w kursie, każda instrukcja procesora (tak to nazwane?) po kolei niczego nie zapomnij, elo
osobiście nie zamierzam ale na pewno się przyda przyszłym programistom assemblera :D
Dzięki za radę, dokładnie tak będzie. Rozumiem że chodzi o każdą instrukcję na każdą rodzinę procesora, po co zatrzymywać się na jednej :D A tak na serio to da się podejść do tematu pragmatycznie. Zawsze są grupy instrukcji odpowiadające za podobne operacje i tylko trzeba gdzieś listę instrukcji dorwać dla odpowiedniego procka.
VSCode ma w dzisiejszych czasach świetny dodatek do Assemblera. Nazywa się "ASM Code Lens".
. Można skakać po labelach.
. Widać od razu co, gdzie jest używane (nad zmiennymi wyskakuje licznik ile razy dana zmienna został wykorzystana, a jak się w to kliknie to pokazuje gdzie była użyta)
. Szczególnie przydatne, gdy trzeba coś poprawić w przejętym kodzie sprzed ładnych paru lat, bo nikt inny nie chciał się tego podjąć.
Dzięki za polecenie. Ja używam zwykłego pluginu z kolorowaniem składni do ARM Assembly, ale sprawdzę
Ja mam pytanko czy po technikum elektronicznym można przejść na embedded? Jestem bliżej 40 i co prawda studiować nie zamierzam aczkolwiek programować bym chciał. Pracuję jako electronic test technician w UK ale chciałbym się rozwinąć. Pozdrawiam
Jak najbardziej, nawet poruszałem ten temat już na kanale. Zobacz live o rekrutacji i filmik o przebranżowieniu na programistę embedded. Wszystko znajdziesz na tej playliście: th-cam.com/video/13a8wqFTYbw/w-d-xo.html
ja nawet nie wiem czy początkującemu warto męczyć się z bardzo trudnym C++ skoro jest wiele łatwiejszych języków, a C++ powoli umiera
Ja myślę, że tak - 25 lat jako programista,
tak...
👍👍
Zrobilem kompilator C i asembler pod x86 i nie polecam, nie ma roboty na to
Szkoda czasu i co więcej pracy w Asm jest bardzo malo.
Ja bym nikomu nie radził szukać stanowiska programisty ASM. To język pomocniczy używany przez programistów C w pewnych konkretnych sytuacjach i uczysz się go raczej żeby być zatrudnionym jako programista C.
😆 Z nauką programowania jest jak z elektrownia atomową w polsce. 😂 No niby można ale po co ? 🤣
Nikt Biosu do swojego komputera pisał nie będzie ani nowego OS do Smartfona. Szczególnie że lepsze wersje AI czy nawet CHAT GPT4.5 już potrafią pisać proste mniej lub bardziej programy jak "Komputer" Enterpraisowy z TNG. 😅
Wiec czy warto wogule uczyć się programowania ? gdy jeden dobrze napisany program rozwiązuje problem w open-soursie a po chyba 3 latach i tak jego kod jest dostępny w freewarze. 😂 Wiec czy aby programowanie to nie jest wogule strata czasu ? I jedynie bezrobotni z nadmiarem czasu mogą się uczyć programowanie hobbistycznie. 🤔 😂😂😂