I. Treści programowe
Struktura
programu, edycja i kompilacja programu, rejestry procesora, pamięć,
II. Cel ćwiczenia
Zapoznanie się ze środowiskiem TASM – Turbo
Assembler firmy Borland. Opanowanie umiejętności
edycji, kompilacji oraz uruchamiania programu w języku asembler.
III. Materiały dydaktyczne:
Język
Asembler również ewoluuje — mimo, że trochę wolniej niż niektóre języki
programowania — gdyż wymaga to zmian w architekturze (budowie) procesora.
Architektura dla której tworzą Państwo programy w ramach tych ćwiczeń określana
jest jako x86 (16-bit). Rejestry ogólnego przeznaczenia w tej architekturze
mają rozmiar 16 bitów. Korzysta się w niej z przerwań BIOS/DOS
(instrukcja INT), które posiadają funkcje
udostępnione programiście, aby mógł wykonać żądane operacje takie jak np.
wyświetlenie napisu, utworzenie pliku na dysku, odczytanie znaku z klawiatury
itd.
Aktualnie większość z Państwa w swoich domowych komputerach posiada zapewne
procesory 64-bitowe o architekturze x86-64 (64-bit) określanej też jako x64.
Przed architekturą 64-bitową przez długi czas popularna była architektura
32-bitowa określana po prostu x86 (32-bit). Dla bardziej ciekawych warto
wspomnieć, że programując w systemie Windows dla architektury x86 zarówno
32-bitowej jak i 64-bitowej korzysta się już nie z przerwań tylko funkcji
Windows API.
Ktoś może pomyśleć, że prezentowane materiały są nieaktualne. Proszę jednak
uwierzyć, że naukę Asemblera x86(-64) warto rozpocząć od tego co było na
początku, aby następnie łatwiej przejść dalej z solidnymi podstawami wiedzy.
Przykład podmontowania folderu
kompilatora w programie DosBox:
mount c
c:/borlandc/bin - montowanie dysku folderu c:/borlandc/bin na
wirtualnym dysku C
c: - enter (przejście do wirtualnego dysku C)
Struktura programu dla
kompilatora TASM:
.model tiny
.code
org 100h
start:
...
end start
Objaśnienie:
|
.model tiny -
|
oznacza model pamięci, w którym
zarówno kod (cs) jak i dane (ds)
programu muszą się zmieścić w 64k - to jest jedna z cech programów typu .com. |
|
.code |
oznacza code
segment - segment kodu programu – początek kodu |
|
org 100h |
program będzie się zaczynać od
CS:0100H - to jest kolejna cecha programów typu .com. |
|
start: end start: |
główna etykieta "start" –
początek kodu programu koniec kodu programu |
Kompilacja
(budowanie) programu z napisanego kodu źródłowego w pliku .asm składa
się z etapu asemblacji, którą wykonuje Asembler tasm.exe oraz
konsolidacji, którą wykonuje konsolidator tlink.exe (ang. linker).
Program typu
.com budujemy poleceniami:
tasm
naszprog.asm (asemblacja)
następnie
tlink
naszprog.obj /t (konsolidacja)
Powstaje wtedy plik wykonywalny programu naszprog.com
Dla programów
typu .exe pomijamy parametr /t.
IV.
Zadania
Zadanie
1.
Przepisz
powyższy kod programu w edytorze tekstu oraz uruchom kod wynikowy.
Zadanie
2.
Napisz
program działający w następujący sposób:
1. Program
wyświetla tekst „Naciśnij klawisz aby kontynuować”
2. Po na
naciśnięciu klawisza powinien pojawić się napis „KPU Krosno – Informatyka”
3. Kolejne
naciśnięcie klawisza wyłącza program.