Nauka asemblera.

  Dzisiaj młodzi ludzie mogą programować w C bez znajomości języka maszynowego. Kiedyś było inaczej - nauka programowania była ściśle związana ze znajomością sprzętu, bo nie było bibliotek obsługujących każde urządzenie. 

W Polsce taki stan trwał dłużej niż na zachodzie z powodów ekonomicznych. Programowanie w językach wyższego rzędu wymaga posiadania komputera z odpowiednim oprogramowaniem, co dzisiaj nie stwarza żadnych problemów. Oczywiście można również pisać w asemblerze - wstawki asemblerowe nie są trudne do zrobienia np. w C. Dla doświadczonego programisty to żaden kłopot, ale nie każdy jest na takim etapie swojego rozwoju. Załóżmy, że chcemy zacząć naukę. Tworzymy projekt, piszemy jakiś program, kompilujemy... Trwa to trochę zbyt długo. Okazuje się, że zrobiliśmy coś nie tak i musimy zmienić jeden rozkaz. Znowu kompilujemy i tracimy mnóstwo czasu, żeby znowu dowiedzieć się, że potrzebna jest kolejna zmiana...

Można to zmienić. Komputery różnią się między sobą wieloma parametrami, jednak łączy je to, że każdy ma jakiś procesor. Procesory też są bardzo różne, ale wszystkie pracują w podobny sposób: pobierają z pamięci kolejne rozkazy i je wykonują. Różnią się ich zestawy instrukcji oraz mnemoniki im przypisane, ale poznanie asemblera jednego z procesorów znacznie ułatwia naukę innych.

W latach osiemdziesiątych powstał CA80, który dawał szansę nauki na prawdziwym komputerze. (Szkoły nie miały wtedy komputerów i nauka polegała na teoretycznym rozważaniu działania procesora...) Do pisania kodu wystarczał kawałek papieru i ołówek. Asemblację robiło się w głowie i gotowe kody maszynowe zapisywało się obok mnemoników. Potem szybkie obliczenia skoków i gotowe. Kod wpisywało się do RAM z klawiatury. Monitor tego komputera miał początkowo tylko dwa kilobajty. Było tam wszystko: debuger z pracą krokową i dwiema pułapkami. Można było sprawdzać zawartość rejestrów, modyfikować ją oraz przeglądać pamięć. W razie potrzeby można było dowolnie zmieniać program i zaraz go testować. Bez czekania na nic. 😇

Rękopis z lat dziewięćdziesiątych.
Niestety nie pamiętam, co robił ten program...

Oczywiście praca nie była łatwa, więc autor rozszerzył swój asortyment o MIKSID. Początkowo był to program dla komputera Amstrad (też z Z80) połączony przez dodatkowy port równoległy (i8255). Z biegiem czasu projekt ewoluował w kierunku systemów CP/M, by na koniec trafić do PC-tów. Niestety nie miałem okazji go przetestować, ale pracuję nad jego rekonstrukcją.

Planuję w kolejnych wpisach przedstawić podstawy programowania z użyciem CA80. Zapraszam, chociaż jeszcze nie wiem, jak to zrobię. 😉

Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.