STOS CD
Każda część dowolnego programu może utworzyć swoją własną przestrzeń stosu, która może być używana w czasie wykonywania programu przez jego podprogramy, usługi DOS, BIOS (Base Input-Output System). Gdy nie jest wykonywany żaden program, MS-DOS używa swego własnego stosu. Języki programowania przyjmują standardowo w stosie w sposób automatyczny, stos o wielkości 512 bajtów. Programowo wielkość tę można zmienić. Zadaniem programisty jest taki podział pamięci aby stos nie pokrywał się z obszarami pamięci przeznaczonymi na dane i programy.
Wprowadzenie do użytkowania języka TURBO ASSEMBLER na komputerze PC.
Zaczynamy (pracę) z programem Turbo Assembler, Rozdział 1
Z pewnością słyszałeś, że programowanie w języku ASSEMBLER to czarna magia nadająca się tylko dla hakerów i magików. Nie wierz w to !
Asembler jest niczym więcej niż kształceniem się człowieka przy komputerze i, jak się spodziewasz, własny język komputerów jest bardzo logiczny.
Możesz też myśleć że asembler jest bardzo potężny - to prawda, asembler jest jedyną drogą, którą można dojść do "wyciśnięcia" pełnej mocy z rodziny procesorów: Intel 80X86, procesorów będących sercem komputerów IBM PC i kompatybilnych.
Możesz pisać programy tylko w asemblerze, albo możesz, jeśli chcesz, wstawiać język asembler do programów napisanych w Borland C++, Borland Pascal i w innych językach.
Tak czy inaczej, w asemblerze możesz pisać szybkie programy. Tak ważną rzeczą jak szybkość jest zdolność kodu programu w asemblerze do kontrolowania wszystkich aspektów operacji komputerowych, do ostatniego cyklu zegara systemowego.
W tym rozdziale, wprowadzamy cię do języka asembler i badamy niepowtarzalne właściwości programowania w asemblerze.
Wpiszesz i uruchomisz różne działające programy w asemblerze, które przyzwyczają cię do pracy z asemblerem. Naturalnie nie zrobimy z ciebie doskonałego programisty w języku asembler. My tylko wprowadzimy cię do języka asembler i przygotujemy cię do zrozumienia i pisania własnych programów.
Mocno sugerujemy, żebyś nabył jedną z doskonałych książek w całości poświęconych programowaniu w asemblerze i architekturze komputera PC (zobacz na listę książek na końcu tego rozdziału). Dodatkowo możesz znaleźć informacje techniczne o IBM DOS i BIOSie, które mogą być przydatnym materiałem informacyjnym. Ta dokumentacja programowania w asemblerze wprowadza do systemowego oprogramowania i sprzętu komputerów IBM PC.
Możesz przerobić ten materiał krok po kroku, wpisując wszystkie przykłady programów po kolei, albo możesz rozpakować przykładowe pliki na dysk (gdy zainstalujesz Turbo Assembler) i mieć wszystkie programy. (Jaka by nie była twoja decyzja, nazwy plików będą podane na początku dla twojej wygody).
Najpierw pomożemy ci zainstalować Turbo Assembler i omówimy ułatwienia jakie daje ONLINE HELP.
INSTALACJA PROGRAMU TURBO ASSEMBLER
Możesz automatycznie zainstalować TURBO ASSEMBLER w taki sam sposób jak instaluje się Borland Pascal. Program instalacyjny zapyta cię czy ma zainstalować Assembler czy nie, i w jakim katalogu ma go zainstalować. Następnie odsyła cię do dokumentacji kompilatora i kończy instrukcje instalacji.
PLIKI TEKSTOWE ONLINE
TURBO ASSEMBLER dostajesz z kilkoma plikami tekstowymi: FILELIST.DOC, README, HELPME!.TSM, MANUAL.TSM, H2ASH.TSM i TCREF.TSM. Pierwsze dwa pliki dostępne są na dysku nazwanym INSTALATION DISK i są kopiowane do twojego głównego katalogu programu. Inne pliki są w podkatalogu DOC głównego katalogu.
PLIKI README
Upewnij się że przeczytałeś pliki README zanim zrobiłeś cokolwiek w TURBO ASSEMBLERZE. Te pliki zawierają ostatnie informacje o programie, jak również poprawki lub dodatki do dokumentacji właściwej.
Powinieneś znaleźć także kompletną listę wszystkich plików znajdujących się na twoich dyskietkach z programem i opis gdzie one się znajdują.
Aby uruchomić README wpisz (w DOSie) po znaku zachęty: README. Możesz także używać programu README aby czytać pliki dokumentacji.
HELPME!.TSM
Twój dysk instalacyjny zawiera także plik o nazwie HELPME!.TSM, który zawiera odpowiedzi na problemy, jakie doświadczyli zwykli użytkownicy. Przedyskutowane jest także zagadnienie instalacji i pytania na temat różnych trybów dostępnych w TURBO ASSEMBLERZE.
PLIK H2ASH
ten plik zawiera szczegółowe informacje na temat narzędzia konwertującego pliki typu .h do .ash (.inc).
pLIK TCREF.TSM
Ten plik omawia jak możesz korzystać z TCREF.
oNLINE HELP
TURBO ASSEMBLER zawiera online help w pliku THELP, który jest narzędzie pomocy dostępnym cały czas w pamięci. Jeżeli używasz na przykład TURBO DEBUGGER'a, możesz wczytać THELP, następnie uruchomić TURBO DEBUGGER i korzystać z pomocy dla programu TURBO ASSEMBLER podczas debugowania. Albo możesz użyć THELP'a do podglądania informacji o języku asembler podczas, gdy tworzysz twój plik źródłowy.
Żeby THELP był aktywny musisz go wczytać do pamięci zanim uruchomisz edytor. Aby wczytać THELP'a musisz wpisać THELP po znaku zachęty w DOSie. Teraz uruchom jak zwykle edytor i naciśnij klawisz skrótu do pomocy - 5 na klawiaturze numerycznej aby uzyskać pomoc. Jeśli kursor jest na pustej linii, gdy przyciśniesz 5, THELP wyświetli na ekranie tabelkę pomocy.
Użyj klawisza TAB, aby przenieść kursor na jakiekolwiek słowo i naciśnij ENTER. Aby uzyskać więcej szczegółów na temat THELP'a i jego linii poleceń, zobacz instrukcję twojego kompilatora.
PISANIE PIERWSZEGO PROGRAMU W TURBO ASSEMBLERZE
W świecie programistów, pierwszym programem tradycyjnie jest program który wyświetla wiadomość „HELLO WORLD” i tutaj jest odpowiedni czas na napisanie go.
Wejdź do tekstowego edytora (takiego który zapisuje pliki ASCII), i wpisz następujące linie które tworzą program HELLO.ASM:
.MODEL small
.STACK 100h
.DATA
HelloMessage DB `Hello, world',13, 10, '$'
.CODE
mov ax, @data
mov ds, ax
mov ah, 9
mov dx, OFFSET HelloMessage
int 21h
mov ah, 4ch
int 21h
end
----------------------------
hello.asm
----------------------------
Jeśli tylko wpiszesz program Hello.asm, zapisz go na dysk. Jeśli jesteś zaznajomiony z C, C++ lub Pascalem może ci się wydawać, że wersja programu „Hello world” w asemblerze jest zbyt długa.
Programy w asemblerze są długie ponieważ każda instrukcja asemblera jest dłuższa od odpowiedniej instrukcji w C, C++ lub PASCALU. Z drugiej strony masz kompletną dowolność w mieszaniu instrukcji asemblera w taki sposób jaki chcesz. To znaczy, że jeśli nie lubisz C czy Pascala, asembler jest zdolny zrobić to samo zadanie i jest wart wpisania dodatkowych kilku linii.
aSEMBLACJA TWOJEGO PIERWSZEGO PROGRAMU
Teraz, gdy zapisałeś plik HELLO.ASM, pewnie byś chciał go uruchomić. Zanim uruchomisz program, musisz przekształcić go w formę wykonywalną (możliwą do uruchomienia). Do tego potrzeba dwóch dodatkowych kroków: asemblacji i linkowania.
Krok asemblacji zamienia twój kod źródłowy w pośrednią formę zwaną object module, a krok linkowania łączy jeden lub więcej object modules w program wykonywalny. Możesz dokonać asemblacji i linkowania z poziomu linii komend.