PRZERWANIE 21H


PRZERWANIE 21H 21.10.2012 11:50
To jest wersja html pliku
http://kaszpir.hlds.pl/mail.grafikus.com.pl/mila/Semestr2/Architektura/Asembler/Przerwanie%2021H.rtf.
G o o g l e automatycznie generuje wersję html dokumentu podczas indeksowania Sieci.
PRZERWANIE 21H
Tabela zawiera spis większości funkcji przerwania 21h.
Funkcja Opis
00H
Nazwa: Zakończenie programu
Opis:
Funkcja kończy wykonywanie procesu. Zwalnia jednocześnie przydzieloną
wcześniej procesowi pamięć, zamyka wszystkie otwarte pliki i oddaje
sterowanie procesowi macierzystemu. Istnieje nowsza o podobnym znaczeniu
funkcja, mianowicie 4CH.
Do rejestru CS podajemy adres przedrostka procesu (PSP). Funkcja nie zwraca
żadnej wartości.
01H Nazwa: Czytanie znaku z echem
Opis:
Funkcja oczekuje na znak w standardowym strumieniu wejściowym. Kiedy
znak się pokaże, funkcja kopiuje go do standardowego strumienia wyjściowego.
Po odebraniu znaku funkcja w rejestrze AL zwraca kod tego znaku. Jeśli
wciśniętym klawiszem był klawisz CTRL+C, to funkcja wywoła przerwanie
23H
02H
Nazwa: Wypisywanie znaku
Opis:
Przesyła znak, którego kod znajduje się w rejestrze DL do standardowego
strumienia wyjściowego. Jeśli podczas wykonywania tej funkcji zostanie
wciśnięty klawisz CTRL+C, to zostanie wywołanie przerwanie 23H.
03H
Nazwa: Czytanie znaku z urządzenia dodatkowego
Opis:
Funkcja czeka na znak ze strumienia dodatkowego i zwraca go w rejestrze AL.
Kiedy naciśniętym klawiszem był klawisz CTRL+C wywołane zostanie
przerwanie 23H
04H
Nazwa: Wypisywanie znaku do urządzenia dodatkowego
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 1 z 16
PRZERWANIE 21H 21.10.2012 11:50
04H
Nazwa: Wypisywanie znaku do urządzenia dodatkowego
Opis:
Funkcja wysyła znak zawarty w DL do standardowego strumienia
dodatkowego. Klawisz CTRL+C wywołuje przerwanie 23H
05H
Nazwa: Drukowanie znaku
Opis:
Przesyła znak z rejestru DL do standardowego strumienia drukarki.
06H
Nazwa: Bezpośrednie korzystanie z konsoli
Opis:
Jeśli przed wywołaniem funkcji w rejestrze DL była wartość 0FFH, to nie
ustawiony znacznik Z oznacza, że w rejestrze AL znajduje się znak ze
standardowego strumienia wejściowego. Ustawiony znacznik Z oznacza, że w
standardowym strumieniu wejściowym nie było żadnego znaku. W takim
przypadku w AL wstawiana jest wartość 0. Jeśli przekazana wartość w DL była
inna niż 0FFH, to znak z DL jest przesyłany do standardowego strumienia
wyjściowego. Funkcja ta nie reaguje na naciśnięcie klawisz CTRL+C.
07H
Nazwa: Bezpośrednie czytanie z konsoli
Opis:
Funkcja oczekuje na znak do odczytu ze standardowego strumienia
wejściowego, następnie zwraca go w rejestrze AL. Funkcja nie reaguje na
klawisz CTRL+C.
08H
Nazwa: Czytanie znaku
Opis:
Funkcja czeka na znak ze standardowego strumienia wejściowego, następnie
zwraca jego kod w rejestrze AL. Funkcja przy wciśnięciu klawisza CTRL+C
wywołuje przerwanie 23H
09H
Nazwa: Wypisywanie tekstu
Opis:
Funkcja wysyła do standardowego strumienia wyjściowego łańcuch znaków
przekazanych w DS:DX. Aańcuch ten musi być zakończony znakiem '$' (dolar).
Znak ten sam nie jest wyświetlany. Wyświetlanie można przerwać klawiszem
CTRL+C
0AH Nazwa: Czytanie wiersza z klawiatury
Opis:
Funkcja pobiera łańcuch znaków ze standardowego strumienia wejściowego.
Kopiuje je do bufora zdefiniowanego przez DS:DX. Bufor ten powinien być
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 2 z 16
PRZERWANIE 21H 21.10.2012 11:50
Kopiuje je do bufora zdefiniowanego przez DS:DX. Bufor ten powinien być
poprzedzony bajtem, określającym maksymalną liczbę znaków łącznie z CR,
który musi być wprowadzony na końcu. Drugi bajt zawiera liczbę
przeczytanych znaków bez CR. Wartość tą ustawia funkcja na końcu. Dalej są
wprowadzone dane. Ciąg znaków musi być zakończony klawiszem CR (0DH).
Funkcja może zostać przerwana po naciśnięciu klawisza CTRL+C.
0BH
Nazwa: Sprawdzanie stanu klawiatury
Opis:
Funkcja sprawdza, czy w standardowym strumieniu wejściowym są jakieś
znaki. Jeśli nie został zmieniony strumień, to sprawdza bufor klawiatury. Jeśli
w buforze funkcja nie znajdzie żadnych klawiszy, to zwraca w rejestrze AL
wartość zero, w przeciwnym wypadku zwraca wartość 0FFH.
0CH
Nazwa: Opóznienie bufora czytanie z klawiatury
Opis:
Funkcja ta czyści bufor standardowego strumienia wejściowego. Po
wyczyszczeniu bufora, funkcja wywołuje przerwanie 21H i funkcję podaną w
rejestrze AL.
0DH
Nazwa: Stabilizowanie stanu dysku
Opis:
Funkcja czyści wszystkie bufory plików w pamięci, co powoduje, że zawartość
tych plików jest poprawna. Czyszczenie buforów nie zamyka plików.
0EH
Nazwa: Ustalenie dysku bieżącego
Opis:
Ustala dysk bieżący o numerze podanym w rejestrze DL. W rejestrze AL
zwraca liczbę wszystkich dysków logicznych w systemie.
0FH
Nazwa: Otwieranie pliku
Opis:
Otwiera plik. W rejestrze DS:DX musi znajdować się adres bloku FCB tego pliku.
Otwierany plik nie może być już wcześniej otwarty. Jeśli plik nie istnieje lub ma
ustawione odpowiednie atrybuty funkcja zwraca wartość w rejestrze AL=0FFH i
kończy działanie programu. Jeśli wszystko powiodło się sukcesem uzupełniane są
odpowiednie pola FCB:
Jeśli numer stacji dysków [00H] miał wartość 0(dysk bieżący) to wartość ta jest
zmieniana na numer dysku bieżącego (1-A, 2-B itd.)
Numer bloku bieżącego (0CH) jest zerowany
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 3 z 16
PRZERWANIE 21H 21.10.2012 11:50
Numer bloku bieżącego (0CH) jest zerowany
Rozmiar pliku (10H), data (14H) i czas (16H) są ustawiane zgodnie z danymi
katalogu.
10H Nazwa: Zamykanie pliku
Opis:
Funkcja zamyka plik opisany blokiem FCB przekazanym w DS:DX. Jeśli wystąpi
jakiś błąd funkcja zwraca w rejestrze AL wartość 0FFH.
11H
Nazwa: Znajdowanie pierwszej pozycji w katalogu
Opis:
Funkcja przeszukuje bieżący katalog w poszukiwaniu pozycji odpowiadającej
wzorcowi. Szukany wzorzec FCB przekazany jest w DS:DX. Można w nim używać
takich znaków jak: * czy ?. Jeśli plik nie zostanie znaleziony funkcja zwraca w
rejestrze AL wartość 0FFH, w przeciwnym wypadku zwraca w buforze roboczym
(DTA) nowy blok FCB znalezionego pliku.
12H
Nazwa: Znajdowanie kolejnej pozycji w katalogu
Opis:
Funkcji tej używa się po wcześniej wykonanej funkcji11H. Powoduje ona
znalezienie kolejnej pozycji odpowiadającej wzorcowi. Jeśli nie zostanie znaleziony
żaden plik, funkcja zwraca w rejestrze AL wartość0FFH. Jeśli jednak zostanie
znaleziony plik AL=0, a w buforze roboczym zostanie utworzony blok FCB.
13H
Nazwa: Usuwanie pliku
Opis:
Funkcja ta powoduje usunięcie pliku odpowiadającemu wzorcowi przekazanemu w
bloku FCB. Adres tego bloku podajemy w DS:DX. Plik nie może być otwarty. We
wzorcu można używać znaków: "*" i "?".Jeśli nie zostanie znaleziony plik do
skasowania w AL znajdzie się wartość 0FFH, w przeciwnym wypadku AL=0.
14H Nazwa: Sekwencyjne czytanie pliku
Opis:
Funkcja czyta kolejne rekordy pliku otwartego i związanego z blokiem FCB
wskazanym przez DS:DX. Umieszcza rekord w buforze roboczym (DTA) i
zwiększa przesunięcie rekordu [20H] i ewentualnie numer bloku [0CH] FCB.
Funkcja zwraca w rejestrze AL następujące wartości:
00H - Czytanie zakończone sukcesem
01H - Napotkano koniec pliku
02H - Zbyt mało miejsca w buforze roboczym
03H - Napotkano koniec pliku. Przeczytano część rekordu, resztę wypełniono
zerami.
15H Nazwa: Sekwencyjne pisanie w pliku
Opis:
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 4 z 16
PRZERWANIE 21H 21.10.2012 11:50
Opis:
Funkcja zapisuje rekord znajdujący się w buforze roboczym (DTA) do pliku
opisanego przez blok FCB wskazany przez DS:DX. Zostaje zapisany rekord o
długości równej rozmiarowi rekordu (0EH) pod pozycją wskazywaną przez numer
bloku (0CH) i przesunięcie rekordu (20H), a następnie zwiększa wartość tych pół. W
rejestrze AL zostaje podany kod wykonania operacji (patrz 14H)
16H
Nazwa: Tworzenie pliku
Opis:
Funkcja powoduje utworzenie nowego pliku pod nazwą podaną w bloku FCB
wskazanym przez DS:DX. Stworzony plik zostaje od razu otwarty. Jeśli plik już
istnieje, to zostaje otwarty i długość pliku (10H) zostaje ustawiona na 0. Jeśli
podczas tworzenia pliku wystąpi błąd, to zostanie on zwrócony w rejestrze AL.
17H
Nazwa: Zmiana nazwy pliku
Opis:
Funkcja powoduje zmianę nazwy pliku związanego z blokiem FCB wskazanym
przez DS:DX. Blok ten powinien zostać zmodyfikowany tak, że bezpośrednio po
nazwie pierwszego pliku (11H) należy podać nazwę drugiego pliku. Jeśli wystąpi
błąd, to zostanie on zwrócony w rejestrze AL. W przeciwnym wypadku AL=0.
19H
Nazwa: Pytanie o dysk bieżący
Opis:
Funkcja zwraca w rejestrze AL numer bieżącego dysku.
1AH Nazwa: Ustalenie bufora roboczego
Opis:
Funkcja powoduje ustalenie adresu bufora roboczego (DTA).Adres podajemy w
DS:DX.
1BH
Nazwa: Pytanie o charakterystykę dysku bieżącego
Opis:
Funkcja zwraca informacje na temat bieżącego dysku. W rejestrze AL zapisana
zostanie liczba sektorów w bloku przydziału (cluster). Do CX zostanie przesłana
liczba bajtów w jednym sektorze. W rejestrze DX zapisana zostanie liczba bloków
przydziału na dysku, a DS:DX -adres bajta identyfikującego postać dysku.
1CH
Nazwa: Pytanie o charakterystykę urządzenia blokowego
Opis:
Funkcja ta zwraca informacje na temat urządzenia blokowego, którego numer
podano w rejestrze DL. W rejestrze AL zostanie zapisana liczba sektorów w bloku
przydziału. W CX liczba bajtów w sektorze, DX liczba bloków przydziału na dysku.
W DS:BX adres bajta identyfikującego postać dysku.
1FH
Nazwa: Pytanie o adres bloku informacji o urządzeniach dla bieżącego dysku
Opis:
Jest to funkcja nieudokumentowana. Zwraca w DS:BX adres bloku informacji o
urządzeniu dla bieżącego dysku. Blok ten ma następujący format:
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 5 z 16
PRZERWANIE 21H 21.10.2012 11:50
urządzeniu dla bieżącego dysku. Blok ten ma następujący format:
offset rozmiar Opis
0 1 numer dysku (0-A)
1 1
Numer urządzenia w programie
2 2 Rozmiar sektora w bajtach
4 1
Liczba sektorów na blok przydziału (cluster)
5 1
n (blokprzydziału=2*liczba sektorów)
6 2 Liczba zarezerwowanych sektorów na dysku
8 1 Liczba tablic FAT na dysku
9 2
Ilość pozycji w katalogu głównym
0BH 2 Numer pierwszego sektora z danymi
0DH 2
Liczba bloków przydziału na dysku
0FH 1 Rozmiar FAT w sektorach
10H 2
sektor, w którym znajduje się katalog główny
12H 4
Adres nagłówka urządzenia
16H 1
Bajt identyfikujący postać dysku (FAT)
17H 1
Znacznik dostępu
18H 4
Adres następnego bloku informacji (FFFFH gdy ostatni)
21H
Nazwa: Swobodne czytanie pliku
Opis:
Funkcja powoduje przeczytanie rekordu wskazanego przez numer rekordu
bieżącego (21H) z otwartego pliku związanego z blokiem FCB wskazanym przez
DS:DX. Zostanie on umieszczony w buforze roboczym DTA. Zostaną również
zwiększone: przesunięcie rekordu (20H) i numer bloku(0CH). Rejestr AL
zwraca kod ewentualnego błędu
22H
Nazwa: Swobodne pisanie w pliku
Opis:
Funkcja powoduje zapisanie rekordu, który znajduje się w buforze roboczym
(DTA), do pliku opisanego blokiem FCB, którego adres wskazany jest przez
DS:DX.
23H
Nazwa: Pytanie o rozmiar pliku
Opis:
Funkcja określa liczbę rekordów w pliku, odpowiadającemu blokowi FCB
wskazanemu przez DS:DX.
24H
Nazwa: Wybieranie rekordu
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 6 z 16
PRZERWANIE 21H 21.10.2012 11:50
24H
Nazwa: Wybieranie rekordu
Opis:
Funkcja ustawia rekord bieżący (21H) na podstawie zawartości pól: numer
bloku (0CH) i przesunięcie bloku(20H) tablicy FCB. DS:DX musi wskazywać na
blok związany z tym plikiem.
25H
Nazwa: Ustalenie adresu kodu obsługi przerwania
Opis:
Funkcja ustawia nowy adres procedury obsługi przerwania. Numer przerwania
podajemy w rejestrze AL, natomiast adres w DS:DX.
26H Nazwa: Tworzenie nowego PSP
Opis:
Funkcja powoduje utworzenie nowego przedrostka procesu w segmencie
wskazanym przez DX.
27H
Nazwa: Swobodne czytanie ciągu rekordów
Opis:
Funkcja powoduje przeczytanie jednego lub kilku (CX)rekordów, z których
pierwszy wskazany jest przez: numer rekordu bieżącego (21H), z otwartego
pliku związanego z blokiem wskazanym przez DS:DX. umieszczenie tych
rekordów w buforze roboczym (DTA). Po przeczytaniu rekordów w rejestrze
CX zostanie zapisana liczba przeczytanych rekordów.
28H
Nazwa: Swobodne pisanie ciągu rekordów
Opis: Funkcja zapisuje jeden lub więcej (CX) rekordów do pliku związanego z
blokiem FCB wskazanym przez DS:DX. Rekord(y) ten znajduje się w buforze
roboczym (DTA). Po wykonaniu zadania rejestr CX zawiera liczbę zapisanych
rekordów.
29H
Nazwa: Rozkład nazwy pliku
2AH
Nazwa: Pytanie o datę
2BH Nazwa: Ustalenie daty
2CH Nazwa: Pytanie o czas
2DH Nazwa: Ustalenie czasu
2EH Nazwa: Ustalenie sygnalizatora weryfikacji
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 7 z 16
PRZERWANIE 21H 21.10.2012 11:50
2EH Nazwa: Ustalenie sygnalizatora weryfikacji
2FH Nazwa: Pytanie o bufor roboczy
30H Nazwa :Pytanie o numer wersji systemu
31H Nazwa: Usypianie procesu
32H
Nazwa: Pytanie o adres bloku informacji o urządzeniu
33H
Nazwa: Pytanie o wrażliwość na znak CTRL + C lub je ustalenie
34H Nazwa: Pytanie o adres sygnalizatora pracy systemu
35H
Nazwa: Pytanie o adres obsługi przerwania
36H Nazwa: Pytanie o rozmiar wolnego miejsca na dysku
37H Nazwa: Ustaw / Pobierz znak przekazywania parametrów
38H Nazwa: Pytanie o kod kraju lub go ustalenie
39H Nazwa: Tworzenie katalogu
3AH Nazwa: Usuwanie katalogu
3BH
Nazwa: Ustalenie katalogu bieżącego
3CH
Nazwa: Tworzenie dojścia
3DH
Nazwa: Otwieranie dojścia
3EH
Nazwa: Zamykanie dojścia
3FH
Nazwa: Czytanie przez dojście
40H
Nazwa: Pisanie przez dojście
41H Nazwa: Usuwanie pozycji z katalogu
42H
Nazwa: Ustawianie wskaznika w pliku
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 8 z 16
PRZERWANIE 21H 21.10.2012 11:50
42H
Nazwa: Ustawianie wskaznika w pliku
43H Nazwa: Sprawdzenie lub zmiana atrybutów pliku
4400H i
Nazwa: Pytanie / Ustalenie opisu urządzenia
4401H
4402H i
Nazwa: Wysłanie polecenia/ Odbieranie informacji od urządzenia znakowego
4403H
4403H i
Nazwa: Wysłanie polecenia/ Odbieranie informacji od urządzenia blokowego
4404H
4406H i
Nazwa: Pytanie o stan urządzenia wejścia / wyjścia
4407H
4408H
Nazwa: Pytanie, czy urządzenie ma wymienny nośnik
4409H
Nazwa: Pytanie, czy urządzenie blokowe jest dostępne przez sieć
440AH
Nazwa: Pytanie, czy plik lub rządzenie jest dostępne przez sieć
440BH Nazwa: Ustalenie liczby nawrotów
440CH
Nazwa: Ustalenie matrycy znaków urządzeń
440DH
Nazwa: Ogólna kontrola urządzeń blokowych
440EH i
Nazwa: Pobierz / Ustaw mapę urządzenia
440FH
45H
Nazwa: Kopiowanie dojścia
46H
Nazwa: Zmiana dojścia
47H
Nazwa: Pytanie o katalog bieżący
48H
Nazwa: Przydzielenie pamięci procesowi
49H
Nazwa: Zwalnianie pamięci
4AH
Nazwa: Zmiana wielkości przydzielonej pamięci
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 9 z 16
PRZERWANIE 21H 21.10.2012 11:50
4AH
Nazwa: Zmiana wielkości przydzielonej pamięci
4B00H
Nazwa: Aadowanie i uruchomienie programu
4B03H
Nazwa: Aadowanie nakładki
4CH
Nazwa: Zakończenie procesu
4DH Nazwa: Pobieranie kodu powrotu procesu potomnego
4EH Nazwa: Znajdowanie pierwszego pliku w katalogu
4FH Nazwa: Znajdowanie kolejnego pliku w katalogu
50H Nazwa: Ustawia segment PSP
51H Nazwa: Pobierz segment PSP
52H Nazwa: Pobierz adres listy adresów MS-DOS
54H Nazwa: Pytanie o stan sygnalizatora weryfikacji
55H Nazwa: Utwórz PSP
56H Nazwa: Zmiana pozycji w katalogu
57H Nazwa: Sprawdzanie lub zmiana daty i czasu modyfikacji pliku
58H
Nazwa: Pytanie o strategię przydziału pamięci lub ustalenie jej
59H
Nazwa: Pytanie o pełny kod błędu
5AH Nazwa: Tworzenie pliku roboczego
5BH Nazwa: Tworzenie nowego pliku
5CH
Nazwa: Rezerwowanie lub zwalnianie części pliku
5E00H
Nazwa: Pytanie o nazwę stanowiska roboczego
Nazwa: Ustalenie znaków sterujących drukarką
5E02H
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 10 z 16
PRZERWANIE 21H 21.10.2012 11:50
5E02H
5F02H
Nazwa: Pytanie o pozycję listy przypisań
5F03H Nazwa:
5F04H
Nazwa: Usunięcie pozycji z listy przypisań
62H Nazwa: Pobieranie adresu PSP
65H Nazwa: Pobieranie rozszerzonych informacji o kraju
66H
Nazwa: Ustalenie / Pobranie globalnej matrycy znaków
Opis:
Funkcja ustala nową matrycę znaków, lub pobiera aktualną. W rejestrze AL
ustalamy, czy: 1-pobieramyglobalną matrycę znaków; 2- ustawiamy globalną
matrycę znaków. Jeśli ustawiamy to w rejestrze BX podajemy jej numer, w
przeciwnym wypadku funkcja w rejestrze BX poda numer aktualnie aktywnej.
Funkcja w rejestrze DX zawiera numer matrycy systemowej, czyli tej, która
została ustalona w czasie startu systemu. Funkcja dostępna od wersji MS DOS
3.30
67H
Nazwa: Ustawienie maksymalnej liczby otwartych dojść
Opis:
Funkcja ustala maksymalną liczbę otwartych stron. Liczba ta zostaje
przekazana w rejestrze. Jeśli liczba ta jest mniejsza niż 20 to zostaje ustawiona
na 20. Funkcja jest dopiero od wersji MS DOS 3.30
68H
Nazwa: Stabilizowanie pliku
Opis:
Funkcja przypisuje wszystkie bufory związane z plikiem, do którego dojście
przekazane zostaje w rejestrze BX. Funkcja jest dostępna dopiero w wersji MS
DOS 3.30
6CH
Nazwa: Rozszerzone otwieranie dojścia
Opis:
Funkcja otwiera plik o podanej nazwie, równocześnie definiując do niego
dojście z uprawnieniami do czytania i pisania w pliku. Funkcja jest najlepsza
przy otwieraniu plików w systemie OS/2. Występuje dopiero w wersji DOS'a
4.0. W razie wystąpienia błędu, kod tego jest przekazany w rejestrze AX.
Wywołanie:
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 11 z 16
PRZERWANIE 21H 21.10.2012 11:50
AH=6CH
AL=00H
BX - tryb otwarcia. Poszczególne bity mają następujące znaczenie:
Bity 0-3: tryb dostępu
Bity 4-6: tryb dzielenia
Bit 7 - dziedziczenie dojścia przez potomne procesy
Bit 13: 0=przy błędzie krytycznym wywoływane jest przerwanie 24H;
1=przerwanie nie jest wywołane
Bit 14: 0=buforowanie zapisu pliku na dysk;1=bezpośredni zapis na dysk
CX - atrybut pliku (w przypadku tworzenia)
DX - rodzaj działania, które ma zostać podjęte:
1H: otwiera plik, jeśli istnieje, w przeciwnym wypadku
funkcja kończy działanie sygnalizując błędem
11H: otwiera plik, jeśli istnieje, w przeciwnym wypadku
go tworzy
12H: jeśli plik istnieje, to zostaje skasowana jego
zawartość, w przeciwnym razie zostaje otworzony
DS:SI - nazwa zapisana w kodzie ASCIIZ
Powrót:
Ustawiony znacznik C
AX - kod błędu
BX=
0: plik został otwarty
1: plik został utworzony i otwarty
2: skasowana została poprzednia zawartość pliku izostał na nowo otwarty
Funkcje int 21 są wywoływane z numerem funkcji w AH Rejestr AX może być zmieniony,
jego zawartość nie jest gwarantowana. Jeśli pojawi się błąd, CF jest ustawiona na 1 i AX
zawiera kod błędu; INT 21,59 może być użyte do określenia przyczyny. Większość funkcji
INT 21 nie przywraca flag do stanu przed przerwaniem aby umożliwić zwracanie informacji
przez rejestr flag.
Przerwanie 21h funkcja 01h - Wczytanie z klawiatury z echem
AH = 01
przerwanie zwraca:
AL = Znak z standardowego urządzenia wejścia
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 12 z 16
PRZERWANIE 21H 21.10.2012 11:50
czeka na dane z STDIN i wyświetla na STDOUT
zwraca 0 dla rozszerzonych klawiszy, pózniej funkcja musi być wywołana ponownie by
odczytać skankod
jeśli wciśnięto ~Ctrl-Break~, uruchamiane jest INT 23h
Przerwanie 21h funkcja 02h - Wyświetlanie znaku
AH = 02
DL = znak do wyświetlenia
przerwanie nie zwraca nic
wyświetla znak na STDOUT
backspace jest traktowany jak niedestruktywne przesunięcie kursora w lewo
jeśli wciśnięto ~Ctrl-Break~, uruchamiane jest INT 23H
Przerwanie 21h funkcja 05h - Wydruk znaku na drukarce
AH = 05
DL = znak do wypisania
przerwanie nie zwraca nic
wysyła znak w DL do STDPRN
przed drukowaniem czeka aż STDPRN jest gotowe
Przerwanie 21h funkcja 09h - Wypisz łańcuch
AH = 09
DS:DX = wskaznik do łańcucha zakończonego znakiem "$"
przerwanie nie zwraca nic
wyświetla łańcuch znaków na STDOUT
backspace jest traktowane jako znak niedestruktywny
jeśli wciśnięto ~Ctrl-Break~, uruchamiane jest ~INT 23~
Przerwanie 21h funkcja 0Ah - Wpisz łańcuch z klawiatury
AH = 0AH
Przerwanie 21h funkcja 0Ch - Czyść bufor klawiatury, uruchom funkcję wczytania
AH = 0CH
AL = 01, 06, 07, 08 lub 0A (funkcje wczytania INT 21)
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 13 z 16
PRZERWANIE 21H 21.10.2012 11:50
przerwanie zwraca:
zob. wartości powrotu z INT 21,AL gdzie AL jest 1, 6, 7, 8 lub A
główną funkcją jest wyczyszczenie bufora klawiatury i wywołanie INT 21 z określoną
(w AL) funkcją
Przerwanie 21h funkcja 0Eh - Wybierz dysk
AH = 0Eh
DL = numer dysku (0-25, A: - Z:)
przerwanie zwraca:
AL = łączna liczba napędów logicznych włącznie z twardymi dyskami (1-26)
dla DOS 3.x+, ta funkcja przerwania zwraca liczbę napędów logicznych lub wartość
LASTDRIVE z CONFIG.SYS
Przerwanie 21h funkcja 19h - Pobierz aktualny napęd
AH = 19h
przerwanie zwraca:
AL = aktualny napęd (0=A,1=B,etc)
określa aktualny napęd
Przerwanie 21h funkcja 2Ah - Pobierz datę
AH = 2Ah
przerwanie zwraca:
AL = dzień tygodnia (0=Niedziela)
CX = rok (1980-2099)
DH = miesiąc (1-12)
DL = dzień (1-31)
odczytuje datę systemu z zegara DOS
aktualizuje obszar biosu pod adresem 0040:0070
Przerwanie 21h funkcja 2Ch - Pobierz czas
AH = 2Ch
przerwanie zwraca:
CH = godzina (0-23)
CL = minuta (0-59)
DH = sekunda (0-59)
DL = setna sekundy (0-99)
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 14 z 16
PRZERWANIE 21H 21.10.2012 11:50
odczytuje czas z zegara DOS
Przerwanie 21h funkcja 36h - Pobierz ilość wolnego miejsca na dysku
AH = 36h
DL = numer dysku (0=bieżący, 1=A:)
przerwanie zwraca:
AX = liczba sektorów w klastrze (= FFFF jeśli napęd jest niewłaściwy)
BX = liczba dostępnych klasterów
CX = liczba bajtów w sektorze
DX = liczba klasterów na dysku
używane do określenia wolnej przestrzeni na dysku
Przerwanie 21h funkcja 39h - Utwórz katalog
AH = 39h
DS:DX = wskaznik do nazwy ścieżki jako łańcucha zakończonego zerem
przerwanie zwraca:
CF = 0 jeśli operacja się powiodła (= 1 jeśli błąd)
AX = kod błędu
tworzy podkatalog
zwraca błąd jeśli katalog już istnieje, element ścieżki nie został znaleziony, pełny katalog
lub dysk zabezpieczony przed zapisem
Przerwanie 21h funkcja 3Ah - Usuń katalog
AH = 3Ah
DS:DX = wskaznik do nazwy ścieżki jako łańcucha zakończonego przez 00h
przerwanie zwraca:
CF = 0 jeśli sukces (= 1 jeśli błąd)
AX = kod błędu DOS
pozwala skasować katalog jeśli istnieje, jest pusty i nie aktualny
Przerwanie 21h funkcja 3Bh - Zmień katalog
AH = 3Bh
DS:DX = wskaznik do ścieżki jako łańcucha zakończonego 00h
przerwanie zwraca:
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 15 z 16
PRZERWANIE 21H 21.10.2012 11:50
CF = 0 jeśli sukces (= 1 jeśli błąd)
AX = kod błędu jeśli CF ustawiona
zmienia bieżący katalog na katalog określony przez wskaznik DS:DX
http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html Strona 16 z 16


Wyszukiwarka

Podobne podstrony:
Rozdział 04 System obsługi przerwań sprzętowych
czy przerwa przy komputerze
PRZERWANE OBJĘCIA
Regresje Przerwać błędne koło karmy
rover 45 przerwy w zaplonie
zespol poprzecznej calkowitej przerwy rdzenia (3)
lab122 przerwa energetyczna w germanie
Układ przerwań mikrokontrolera 8051
PRZERWAN
8051 liczniki i przerwania
Przerwania liczniki

więcej podobnych podstron