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
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
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.
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.)
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  $)
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