Obecny czas to Czw 0:40, 25 Kwi 2024 | Zaloguj się, by sprawdzić wiadomości
Zobacz posty bez odpowiedzi
Forum Forum hakerskie - najlepsze forum hakerskie Strona GłównaForum Forum hakerskie - najlepsze forum hakerskie Strona Główna
Użytkownicy Grupy Rejestracja Zaloguj

Instrukacja INT
Napisz nowy temat   Odpowiedz do tematu    Forum Forum hakerskie - najlepsze forum hakerskie Strona Główna » Assembler
Zobacz poprzedni temat | Zobacz następny temat  
Autor Wiadomość
CodeLan
Administrator



Dołączył: 03 Lis 2006
Posty: 171
Przeczytał: 0 tematów

Pomógł: 3 razy
Ostrzeżeń: 0/5
Skąd: Z pod skrzydeł Google.pl

PostWysłany: Nie 7:30, 17 Cze 2007    Temat postu: Instrukacja INT

Jak już o tym pisałem omawiając istotę przerwań, INT jest instrukcją uruchamiającą przerwanie programowe.

Składnia instrukcji:
INT numer_przerwania


Numer_przerwania to liczba z zakresu 0-255, musi być podana konkretna wartość; nie można używać rejestrów np.

INT AH - spowoduje komunikat o błędzie.


Mając dostęp do listy funkcji choćby nawet podstawowych przerwań - int 21H, int 16h, int 10H - otrzymujesz sporą gamę gotowych procedur, które będziesz mógł wykorzystać w swoich programach bez potrzeby ich (procedur) dołączania do kodu programu.

Polega to na tym, że odpowiednie ustawienie rejestrów (głównie ax, bx...) i wywołanie danego przerwania powoduje wykonanie określonej procedury lub funkcji - jeśli jest to funkcja, to po powrocie z danego przerwania odpowiednie rejestry będą miały odpowiednie wartości - np:

Przerwanie 21H funkcja 2CH - pobierz czas

AH = 2CH

Przerwanie zwraca:
CH = godzina (0-23)
CL = minuta (0-59)
DH = sekunda (0-59)
DL = setne sekundy (0-99)

Co oznacza ten zapis?
Znaczy to tyle, że aby otrzymać czas korzystając z usługi przerwania 21H, należy:
1. Ustawić rejestr AH na wartość 2CH (MOV AH,2CH) 2. Wywołać przerwanie 21H (INT 21H). I już - rejestry CH, CL, DH i DL zawierać będą aktualny czas.

Innym przykładem - dość często używanym - jest funkcja 4CH przerwania 21H.
Przerwanie 21H funkcja 4CH - zakończ program i zwróć kod errorlevel

AH=4CH
AL = kod wyjścia (errorlevel dla plików .bat)

Nie zwraca nic.

Tutaj postępujemy analogicznie jak w poprzednim przypadku - ustawiamy rejestry AH i AL a następnie wywołujemy przerwanie.
Prosta demonstracja funkcji int 21H/4CH

Znając choćby te dwie funkcje - można się pokusić o napisanie prostego programu, który można będzie używać w plikach sadowych (.bat) - program, który po uruchomieniu w errorlevel zwróci aktualną godzinę.

Na pewno już sam potrafisz napisać taki program, jeśli jednak nie, to tutaj masz przygotowany ten programik (w wersji .asm i skompilowanej) oraz prosty plik wsadowy, który pozwoli przetestować działanie programu.

Ostatnią sprawą, o której warto wiedzieć jest oczywista możliwość uruchomienia dowolnego przerwania - bez parametrów.
Jak wiesz, przerwanie 05H jest przerwaniem drukowania ekranu - uruchamianym po naciśnięciu .


Post został pochwalony 0 razy
...
Zobacz profil autora
Powrót do góry
Napisz nowy temat   Odpowiedz do tematu    Forum Forum hakerskie - najlepsze forum hakerskie Strona Główna » Assembler
Wyświetl posty z ostatnich:   
 
 
Wszystkie czasy w strefie EET (Europa)
Skocz do:  

Strona 1 z 1


Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2002 phpBB Group

Theme created OMI of Kyomii Designs for BRIX-CENTRAL.tk.