Co to jest monitor?

Pierwszym usprawnieniem programowania w języku maszynowym jest opracowanie języka pomocniczego, nazywanego asemblerem. Zalicza się go do języków symbolicznych. Każdemu rozkazowi asemblera odpowiada tylko jeden rozkaz w języku maszynowym. Nie jest to zatem język wysokiego poziomu, gdzie jednemu rozkazowi odpowiadać może kilka, kilkanaście lub kilkadziesiąt rozkazów w języku maszynowym. Podstawowym ułatwieniem jakie daje asembler, to umożliwienie zastąpienia kodów liczbowych, łatwiejszymi do zapamiętania nazwami symbolicznymi. Programy, które umożliwiają taki sposób programowania nazywa się również asemblerami lub monitorami. Różnica między asemblerem a monitorem jest taka, jak między kompilatorem i interpreterem z dodatkowym zastrzeżeniem, że monitor używa adresów bezpośrednich, a asembler adresów symbolicznych. W programach tych w momencie pisania nazw symbolicznych następuje tłumaczenie ich na ciąg odpowiednich kodów liczbowych języka maszynowego. Umożliwiają one również podgląd pamięci nie tylko w kodach maszynowych, ale i w postaci tzw. mnemoników i operandów. Na ogół monitory zgłaszają się po inicjacji następującym komunikatem:

B*______PC___NMI__SR AC XR YR SP NV#BDIZC
.;______0401 FE47 32 04 5E 00 F6 ..**..*.
.;

"_" - spacje (w języku html nie da się stawiać więcej niż jednej spacji bez znaku)

gdzie PC oznacza licznik rozkazów (dwubajtowy), NMI - adres procedury przerwania niemaskowalnego, AC - zawartość Akumulatora, XR - zawartość rejestru X, YR - zawartość rejestru Y i SP - wskaźnik stosu. Pozostałe litery i znaki oznaczają rejestry stanu procesora i ich stan. Bity N (Negative - ujemny), V (oVerflow - wystąpił nadmiar), Z (Zero) i C (Carry - wystąpiło przeniesienie) sygnalizują, że w ostatniej operacji powstał wynik o określonych cechach (*) lub, że wynik takich cech nie ma (.). Bit B (Break) sygnalizuje, że wykonana została instrukcja BRK, I (Interrupt) - zabronione przerwania, a D (Decimal) informuje o wykonaniu obliczeń w systemie dziesiętnym. Jeśli stan operacji jest oznaczony gwiazdką, to będziemy mówili, że wciągnięta jest flaga danej operacji (operacja taka wystąpiła), a jeśli stan jest oznaczony kropką, to flaga odpowiadająca tej operacji jest opuszczona. Później podane zostaną instrukcje, które służą do podnoszenia lub opuszczania flag niektórych operacji.

Krzysztof Gajewski, Bogusław Radziszewski "Commodore 64 od środka", wyd. Fundacja Edukacji Technologicznej, Warszawa 1992

Czy istnieje lepsze narzędzie od monitora?

W programach nazywanych monitorami tłumaczenie z asemblera na język maszynowy odbywa się w trakcie pisania programu. Jest to jedna z niewielu zalet. Uciążliwością pisania programu w języku pod monitorem jest konieczność operowania na adresach bezpośrednich, brak w nich mechanizmów ułatwiających wywoływanie procedur (ach, te adresy bezpośrednie), brak elementów programowania strukturalnego itp. Na ogół nie mają tych wad programy nazywane asemblerami lub makroasemblerami.

Program pisany pod asemblerem najczęściej nie jest tłumaczony na język maszynowy w trakcie pisania. W pierwszej chwili otrzymujemy tzw. program źródłowy (source), z którego, po poddaniu go asemblacji, otrzymuje się program w postaci wynikowej (destination). Dla mikroprocesorów 65xx napisano wiele asemblerów i makroasemblerów. Jednym z najbardziej rozbudowanych makroasemblerów, znanych autorom, jest makroasembler o nazwie Merlin. Zupełnie wystarczającym może być również Assembler 64. W czasie pisania tego tekstu (tej książki w sumie - to tylko fragment z niej - Luc) i tworzenia programów takich jak Warsaw Basic, Edytor PL itd. autorzy tych opracowań mieli niestety dostęp tylko do monitora, a w pierwszym okresie swoich zainteresowań mikrokomputerowych tylko do programu monitorującego zawartość pamięci w kodach szesnastkowych. Tak więc zdecydowanie Asemblery są lepsze od "zwykłych" monitorów, których możemy używać w często dodawanych programach w cartridge'ach.

Krzysztof Gajewski, Bogusław Radziszewski "Commodore 64 od środka", wyd. Fundacja Edukacji Technologicznej, Warszawa 1992

 © 1999-2020 Wszystkie prawa zastrzeżone
 Webmaster: Mariusz "Flooder" Młynek