Asembler x86/Przerwania: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Kj (dyskusja | edycje)
→‎Spis przerwań: j.polski trudny język
Lethern (dyskusja | edycje)
m drobne
Linia 3:
== Czym są przerwania ? ==
 
Twórcy architektury x86 przewidzieli konieczność niezależnego wykonywania pewnych zadań, których żąda sprzęt komputerowy. Aby umożliwić "przezroczystą" obsługę tych zadań, wymyślono system przerwań. Przerwanie zwykle wywołuje któryś z elementów komputera (np. klawiatura). W momencie, gdy procesor odbierze sygnał przerwania, automatycznie przestaje wykonywać kod programu i wchodzi w tzw. funkcję obsługi przerwania, która zawarta jest w systemie operacyjnym. Owa funkcja ma za zadanie zaspokoić żądania sprzętu, takie jak np. opróżnienie (w przypadku klawiatury) lub wypełnienie (w przypadku np. dysku) bufora danych tychże urządzeń, oraz inne reakcje, które przewidział producent sprzętu.
 
=== Rodzaje przerwań ===
Okazuje się jednak, że nie tylko urządzenia peryferyjne (z punktu widzenia procesora) mogą generować przerwania. Do generacji przerwań jest także sam procesor! Dzieje się to w dwóch wypadkach:
# w przypadku wystąpienia odpowiedniej instrukcji - wtedy mamy do czynienia z przerwaniem programowym
# w przypadku wystąpienia błędnej instrukcji, lub innego niewłaściwego zachowania się programu - wtedy mymmamy do czynienia z wyjątkiem procesora, czyli przerwaniem sygnalizującym nieprawidłowe działanie programu
Podsumowując, mamy trzy rodzaje przerwań:
* sprzętowe (generowane przez kontroler przerwań 8259A oraz inny sprzęt peryferyjny dla procesora)