Zanim przejdziemy do assemblera, który będzie dziś naszym głównym tematem, jeszcze kilka słów o wyborze translatora. Porównując różne programy tego typu należy brać pod uwagę szybkość działania, ilość zajmowanej pamięci, ale także łatwość korzystania.
0987 - Interpreter, Kompilator, Assembler Cz.2
Dziś kontynuujemy nasze rozważania o translacji na język maszynowy programów napisanych w językach wysokiego poziomu. Z samej zasady interpretacji wynika, że poprawność każdej instrukcji programu źródłowego jest badana dopiero gdy przyszła kolej na wykonywanie tej instrukcji.
0887 - Interpreter, Kompilator, Assembler Cz.1
Większości czytelników znane są wymienione w tytule pojęcia, często jest to jednak znajomość dość pobieżna, więc spróbujmy przyjrzeć się im dokładniej.
0787 - Efektywność i Elegancja Cz.2
Kontynuujemy przegląd podstawowych elementów techniki pisania programów, mających wpływ na efektywność otrzymanego kodu. Zaczniemy od przykładu, w którym wyjątkowo uda się zaoszczędzić i czasu i pamięci. Poniższy program nadaje wartości początkowe elementom dwóch tablic T i A:
0687 - Efektywność i Elegancja Cz.1
Ustaliliśmy, że decydujący wpływ na szybkość działania programu ma przyjęty algorytm rozwiązania problemu. Decydujący ale nie jedyny, choćby dlatego, że ten sam algorytm można zaprogramować na wiele sposobów: bardzo dobrze i bardzo źle. Dziś zajmiemy się przeglądem konstrukcji, które warto stosować oraz tych, których należy unikać jeśli chcemy, aby nasze programy były optymalne.
0587 - Rozsądna Oszczędność Cz.2
Miesiąc temu zajmowaliśmy się konstruowaniem i oceną algorytmów, czyli metod rozwiązywania zadań. Jeśli ktoś z was miał problemy z zapisaniem podanych algorytmów w postaci programów, to może pomogą w tym szkice programów realizujących podane miesiąc temu metody.
0487 - Rozsądna Oszczędność Cz.1
Szybkość działania programu zależy przede wszystkim od przyjętej przez autora metody rozwiązywania problemu (zamiast metoda będziemy raczej mówili ALGORYTM - na poziomie naszych rozważań słowa te znaczą właściwie to samo).
0492 - Wieloprocesowość w TurboVision ?
Aby odpowiedzieć na pytanie, czy możliwa jest wieloprocesowość w Turbo Pascalu 6.0, należy najpierw zdefiniować to pojęcie. W komputerach klasy IBM PC wieloprocesowość polega na pozornym wykonywaniu dwóch (lub więcej) czynności w tym samym czasie. Obserwatorom wydaje się, że procesy wykonywane są jednocześnie - wynika to jednak tylko z dużej szybkości pracy komputera.
1692 - Generator Menu
Programowanie w Turbo Vision ma to do siebie, że przy każdym, nawet małym, próbnym programie należy zdefiniować typ, a w nim zadeklarować procedury. Są to przeważnie: HandleEvent, InitMenuBar i InitStatusLine. Cała struktura programu jest niewątpliwie rzeczą pozytywną, jednak zniechęca młodych "praktyków" programistów, którzy rozwijają swoje zdolności bardziej kreatywnie (tzn. nie stosują przykładów z książki, lecz sami chcą wypróbować działanie danej procedury lub przydatność danego typu).
0196 - Lepszy Przycisk
Jednym z najczęściej używanych w programach obiektów jest przycisk tButton. Ma on jednak dwie dość irytujące wady. Po pierwsze, nie pozwala na skonstruowanie przycisku zawierającego więcej niż jedną linię tekstu. Po drugie, nie daje możliwości wyłączenia cienia pojawiającego się zawsze przy przycisku.
1597 - Symulacja cyfrowych układów kombinacyjnych
Artykuł ten poświęcony jest komputerowej symulacji cyfrowych układów kombinacyjnych, tzn. składających się z bramek, a także koderów i dekoderów. Zagadnienie zostało zilustrowane przykładami w C++, ze względu na łatwość operowania wskaźnikami i wysoki stopień abstrakcji danych oferowany przez ten język
1395 - Duże Liczby
Podczas pisania programu do wyszukiwania dużych liczb pierwszych pojawił się przede mną problem, polegający na tym, że musiałem napisać procedury operujące na takich liczbach za pomocą czterech podstawowych działań. W grę miały wchodzić liczby całkowite rzędu ok. 1040. Typy standardowo zdefiniowane w C i Pascalu nie wchodziły w grę - typy całkowite mogą przedstawić na swych 32 bitach liczby rzędu 1010, natomiast typy rzeczywiste przedstawiają wartości przybliżone. Stąd wziął się pomysł zdefiniowania klasy obiektów Very Long Int.
1896 - DPMI - Własny DOS Extender
W roku 1990 firmy: Borland, Eclipse, IGC, Intel, Lotus, Microsoft, PharLap, Phoenix, Quarterdeck i Rational opracowały specyfikację interfejsu programowego dla trybu chronionego procesora. Jest to specyfikacja DPMI (ang. DOS Protected Mode Interface). Do najpopularniejszych programów oferujących DPMI należy QEMM firmy QuarterDeck. Sama specyfikacja nie określa listy funkcji dostępnych przez przerwanie 21h, poza funkcją 4Ch. Jednak serwery DPMI poszczególnych producentów obsługują wiele z tych funkcji. QDPMI, który omówię w dalszej części artykułu, obsługuje m.in. funkcje operacji dyskowych.