background image

AK    

 

 

 

 

 

 

 

 

Ćw. 5 

 

Programowanie procesora 8086 z wykorzystaniem funkcji systemowych 

 

Cel ćwiczenia: Poznanie DOS API 

Literatura: E. Wróbel, „Asembler – praktyczny kurs”, Helion, 2004,   G. Michałek, „Asembler nie tylko dla orłów”, 

Intersoftland 1997,     Bułhak L., Goczyński R., Tuszyński M., DOS od środka. Help, Warszawa, 1992. 

Sprzęt i oprogramowanie: Komputer PC, program AFD (wersja 1 lub 2), asembler NASM 

Pomoce: Tabela rozkazów x86 – plik Intel8086CodeTable.pdf 

Zagadnienia: 

Operacje na stosie 

Przerwania programowe 

DOS API 

Wybrane rozkazy x86 

1.

 

Napisz program, który: 

 zapisuje na stosie zawartość rejestrów AX, BX, CX i DX, 

zmienia zawartość tych rejestrów, 

odtwarza poprzednią zawartość rejestrów 

Przy wykonywaniu programu zwróć uwagę jak zmienia się wskaźnik stosu 

2.

 

Napisz podprogram, który mnoży 2 liczby 16 bitowe. Argumenty przekazywane są w rejestrach AX i BX, a wynik 

zwracany w CX. 

Do następnych zadań potrzebny jest drugi ekran. Włączamy go wpisując w programie AFD:  

mo a on

 

Przełączanie miedzy ekranami klawiszem F6. 

3.

 

Napisz program wyświetlający na ekranie twoje inicjały. Wykorzystaj funkcję 02 przerwania 21. 

(Funkcja 02   - wysłanie znaku na ekran -AH=02, DL – kod znaku do wysłania.) 

4.

 

 Napisz program, który wyświetla na ekranie Twoje imię. Wykorzystaj funkcję 09 przerwania 21. 

(Funkcja 09    - wyświetlenie na ekranie łańcucha znaków (tekstu) AH=09,  

DS.:DX – adres początku łańcucha, łańcuch kończy się znakiem  $) 

5.

 

Napisz program, który wczytuje z klawiatury ciąg znaków aż do znaku *, a następnie wyświetla je w odwrotnej 

kolejności. Wykorzystaj funkcje  01 i 02 przerwania 21. 

(Funkcja 01    - odczytanie znaku z klawiatury i wysłanie echa na ekran –  

AH=01, wyjście AL. – odebrany znak. 

Uwaga: Napisz programy 3, 4 i 5  korzystając z edytora Notatnik następnie dokonaj asemblacji  

przy użyciu programu NASM 

( np. program w pliku p3.asm, program wynikowy w p3.com,  wydruk w p3_list.txt: 

   nasm –f bin    p3.asm  -o p3.com   –l p3_list.txt    

Przykładowy program w języku asembler  (Dyrektywa org 100h jest obowiązkowa, dwa ostatnie wiersze to 

standardowe zakończenie programu) 

 

 

 

Czyszczenie ekranu

org 100h 
mov ah,02 

 

mov dl,'K' 

 

int 21h ;  

 

mov ax,4c00h 

 

int 21h 

 

 

 
mov ah,0 
mov al,03 
int 10H