PRZERWANIE 21H

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 1 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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

T

abela 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

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 2 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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. Łań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ć

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 3 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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óźnienie 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

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 4 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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:

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 5 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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:

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 6 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 7 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 8 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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 wskaźnika w pliku

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 9 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

42H

Nazwa: Ustawianie wskaźnika w pliku

43H

Nazwa: Sprawdzenie lub zmiana atrybutów pliku

4400H i

4401H

Nazwa: Pytanie / Ustalenie opisu urządzenia

4402H i

4403H

Nazwa: Wysłanie polecenia/ Odbieranie informacji od urządzenia znakowego

4403H i

4404H

Nazwa: Wysłanie polecenia/ Odbieranie informacji od urządzenia blokowego

4406H i

4407H

Nazwa: Pytanie o stan urządzenia wejścia / wyjścia

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

440FH

Nazwa: Pobierz / Ustaw mapę urządzenia

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

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 10 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

4AH Nazwa: Zmiana wielkości przydzielonej pamięci

4B00H Nazwa: Ładowanie i uruchomienie programu

4B03H Nazwa: Ładowanie 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

5E02H

Nazwa: Ustalenie znaków sterujących drukarką

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 11 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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:

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 12 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 13 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

czeka na dane z STDIN i wyświetla na STDOUT
zwraca 0 dla rozszerzonych klawiszy, później 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 = wskaźnik 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)

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 14 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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)

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 15 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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 = wskaźnik 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 = wskaźnik 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 = wskaźnik do ścieżki jako łańcucha zakończonego 00h
przerwanie zwraca:

background image

21.10.2012 11:50

PRZERWANIE 21H

Strona 16 z 16

http://student.agh.edu.pl/~jliput/asm-doc/przerwania.html

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 wskaźnik DS:DX


Wyszukiwarka

Podobne podstrony:
13 programowalny kontroler przerwan 8259
CW 06 B przerw
ADA wyjatki przerw3
przerwania urz peryf
Twórczość Kazimierza Przerwy -Tetmajera, Szkoła, Język polski, Wypracowania
Jak przerwać wykonywanie pętli (for, PHP Skrypty
przerwa
przerwan
111-4, materiały studia, 111. WYZNACZANIE SZEROKOŚCI PRZERWY ENERGETYCZNEJ W PÓŁPRZEWODNIKU METODĄ T
kospekt12, Elektrotechnika AGH, Semestr II letni 2012-2013, Fizyka II - Laboratorium, 12 Wyznaczanie
PRZERWANIE CIĄŻY DO 9 TYGODNIA, Wszechnica Świętokrzyska, praca, seminarium
spr-122, Labolatoria fizyka-sprawozdania, !!!LABORKI - sprawozdania, Lab, !!!LABORKI - sprawozdania,
SPRAWKO przerwania
iden przerw czasowych

więcej podobnych podstron