Obraz zawierający tekst, Czcionka, Grafika

Opis wygenerowany automatycznie 

Kierunek Informatyka

 

Instrukcja do ćwiczeń laboratoryjnych nr:

1

Nazwa przedmiotu:
Programowanie niskopoziomowe

Temat: Wprowadzenie do programowania niskopoziomowego

Tryb studiów: stacjonarny
i niestacjonarny

Czas trwanie ćw.

2x45 min

Autor materiałów: dr Marcin Skuba

 

 

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:

- Informacje ogólne

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 kodu źródłowego

 

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.