assembler€86ˆ 2

assembler€86ˆ 2



244


9. Wykorzystanie procedur systemowych w programach użytkowych

Program użytkowy kończy się przekazaniem sterowania do systemu operacyjnego. Może to być zrealizowane jednym z podanych sposobów

•    WywoÅ‚anie funkcji 4CH za poÅ›rednictwem INT 21H (33)

MOV AH,4CH INT 21H

Ten sposób jest zalecany, jest jednak dostępny dopiero dla systemu MS-DOS wersji 2.00 i późniejszych.

•    WywoÅ‚anie przerwania 20H

INT 20H

Sposób stosowany najczęściej w plikach o rozszerzeniu COM. Warunkiem wywoÅ‚ania jest, to aby rejestr segmentu programu CS wskazywaÅ‚ poczÄ…tek obszaru PSP. Wymaganie to dotyczy także dwóch kolejnych sposobów.

•    Skok do poczÄ…tku nagłówka segmentu programu

JMP 0

Komórka pamięci 0 w nagłówku segmentu programu zawiera rozkaz INT 20H, tak więc sposób ten jest równoważny drugiemu.

•    WywoÅ‚anie funkcji 00H za poÅ›rednictwem INT 21H (33)

MOV AH,0 INT21H

Funkcja 00H jest wywoływana przez INT 20H - oba sposoby są identyczne.

•    Nadanie odpowiedniej wartoÅ›ci rejestrowi AH i skok (dÅ‚ugi) pod adres 50H liczony wzglÄ™dem poczÄ…tku obszaru PSP (zob. tabl. 8.2). Pod adresem tym znajdujÄ… siÄ™ rozkazy INT 21H oraz RETF (co pozwala wywoÅ‚ać każdÄ… funkcjÄ™ MS-DOS). Zmiana rozkazów umieszczonych pod adresem wzglÄ™dnym 50H pozwala na komunikowanie siÄ™ przez ten Å‚Ä…cznik z innymi moduÅ‚ami programowymi. Jeżeli nie zostaÅ‚y one odpowiednio skonsolidowane, a Å‚Ä…cznik zmodyfikowany, to nastÄ™puje wywoÅ‚anie przerwania INT 21H i w naszym przypadku zakoÅ„czenie programu.

Z pośród wymienionych przerwań systemowych MS-DOS w programach użytkowych można korzystać jedynie z przerwań: 20H, 21H, 25H, 26H oraz 27H

INT20H (32) - zakończenie programu użytkowego (ang.program tenninate ),

INT 21H (33) - wywołanie uniwersalych funkcji systemowych (ang. function request). INT 22H (34) - adres, do którego nastąpi skok po zakończeniu aktualnie wykonywanego programu (ang. tenninate address ); bajty 0000:0088H - 0000:008BH,

INT 23H (35) - adres, do którego nastąpi skok po naciśnięciu Ctrl-C (ang. Control-C exit address ); bajty 0000:008CH - 0000:008FH,

INT 24H (36) - adres, do którego nastąpi skok po napotkaniu istotnego błędu (ang. fatal error abort address ); bajty 0000:0090H - 0000:0093H,

INT 25H (37) - fizyczny odczyt kolejnych sektorów (ang. absolute disk read ),

powered by

9.2. Procedury systemowe MS-DOS


Mi si^l

INT 26H (38) - fizyczny zapis kolejnych sektorów (ang. absolute disk write ),

INT 27H(39) - zakoÅ„czenie wykonywanego programu, przy czym program pozostaje w pamiÄ™ci operacyjnej i może być ponownie uruchomiony. Rejestry CS:DX powinny zawierać adres nastÄ™pnego bajtu po ostatnim bajcie kodu programu.

Przykład

MOV DX, OFFSET OSTATNIAJNSTRUKCJA INC DX

INT 27H ; Zobacz funkcjÄ™ AH = 31H dla INT 21H,

; która jest obecnie zalecana    4

INT 28H-40H (40-64) - zarezerwowane.

Szczegółowe omówienie wszystkich wymieniowych przerwaÅ„ systemowych oraz funkcji wywoÅ‚ywanych za poÅ›rednictwem INT 21H Czytelnik znajdzie w pozycjach literaturowych takich, jak [3], [9], [11] lub w przeglÄ…dowych artykuÅ‚ach w czasopismach profesjonalnych. W książce zostanÄ… wymienione jedynie funkcje przerwania 21H, które pozwolÄ… zorientować siÄ™ w dziaÅ‚aniu funkcji, ponadto umożliwiÄ… analizÄ™ programów publikowanych w wiÄ™kszoÅ›ci czasopism poÅ›wiÄ™conych profesjonalnej informatyce. W dalszym ciÄ…gu pod pojÄ™ciem numeru funkcji bÄ™dziemy rozumieć zawartość rejestru AH ustawianÄ… w programie przed wywoÅ‚aniem rozkazu INT 21H.

WÅ›ród funkcji systemowych wyróżnia siÄ™ funkcje zgodne z funkcjami systemu operacyjnego CP/M(R) oraz zgodne z funkcjami systemu XENIX. Te drugie sÄ… bezwzglÄ™dnie zalecane, prostsze w użyciu, a ponadto pozwalajÄ… na peÅ‚ne wykorzystanie cech systemu MS-DOS w wersji 2.0 i późniejszych, zwiÄ…zanych z organizacjÄ… hierarchicznych systemów plików dyskowych z podrzÄ™dnymi katalogami (ang. sub-directoÅ„es ). Dopuszcza siÄ™, że przyszÅ‚e wersje systemu MS-DOS mogÄ… nie realizować funkcji CP/M(R).

Funkcje wywoływane za pośrednictwem przerwania INT 21H

Zapis, np. 00H poprzedzający opis funkcji należy rozumieć jako AH = 00H.

Funkcje zgodne z funkcjami systemu CPIM (00H-24H)

00H - zakończenie wykonywanego programu (ang. terminal program ),

01H - oczekiwanie na naciśnięcie klawisza, odczytanie znaku z klawiatury i wysłanie echa na ekran. Kod znaku pozostaje w rejestrze AL (ang. read keyboard and echo ),

02H - wysłanie znaku na ekran. Kod znaku zostaje pobrany z rejestru DL (ang. display character),

03H - oczekiwanie na znak i odczytanie znaku z wejścia szeregowego AUX. Kod znaku pozostaje w AL, brak informacji o ewentualnych błędach (ang. aicdliary input),

04H - wysłanie znaku do wyjścia szeregowego AUX. Kod znaku zostaje pobrany z rejestru DL (ang. auxiliary output),

05H - wysłanie znaku pobranego z DL do standardowego równoległego sprzęgu drukarki PRN (ang.pn/i/ character),


Wyszukiwarka

Podobne podstrony:
assembler?86? 7 234 9. Wykorzystanie procedur systemowych w programach użytkowych Przerwania sprzę
assembler?86? 8 236    9. Wykorzystanie procedur systemowych w programach użytkowyc
assembler?86? 9 238    9. Wykorzystanie procedur systemowych w programach użytkowyc
assembler?86? 0 240 9. Wykorzystanie procedur systemowych w programach użytkowych A < 2 > -
assembler?86? 1 242 9. Wykorzystanie procedur systemowych w programach użytkowych Wywołanie rezydu
assembler?86? 4 248 9. Wykorzystanie procedur systemowych w programach użytkowych adres pola FCB,
assembler?86? 5 250 9. Wykorzystanie procedur systemowych w programach użytkowych numer kanału. Je
assembler?86? 6 252    9. Wykorzystanie procedur systemowych w programach użytkowyc
assembler?86? 7 254 9. Wykorzystanie procedur systemowych w programach użytkowych • Przykład ilust
assembler?86? 3 246 9. Wykorzystanie procedur systemowych w programach użytkowych 06H - bezpośredn
assembler?86? 6 9. Wykorzystanie procedur systemowych w programach użytkowych Mikrokomputery klasy
Scan 110328 0094 95 WYKORZYSTANIE PROCEDUR ...Pod koniec spotkania zapytaliśmy, jak uczestnicy się c
t Program diagnostyczny systemu l Program koordynujący Programy Użytkowo Programy
Elementy systemu komputerowego użytkownicy (ludzie, maszyny, inne komputery) programy użytkowe
programy użytkowe rezydujące programy systemowe programy obsługi urządzeń z poziomu MS-DOS programy
u El SMART - System - (Program zarejestrowany) - Wersja 2.92.4032 Użytkownik: Administrator - [Panel

więcej podobnych podstron