asm, BIOS INT

background image

BIOS

(ang. Basic Input-Output System - Podstawowy System

Wejścia-Wyjścia)

Wstęp ::

BIOS Data Area

::

CMOS

::

POST

::

Proces bootowania

::

Przerwania

Literatura

::

Linki

::

Autorzy

Przerwania

Ponieważ jest to prezentacja o BIOS-ie zostaną tu przedstawione tylko przerwania BIOS-u. Dziś już nie są
one używane przez nowoczesne systemy operacyjne, takie jak Linux. Powodów po temu jest kilka:



przerwania BIOS-u muszą pracować w trybie rzeczywistym, tzn. Linux ich po prostu nie może używać
gdyż sam pracuje w trybie chronionym (a przełączanie się jest zbyt kosztowne).



przerwania BIOS-u są wolniejsze od bezpośredniej obsługi urządzeń;



przerwania BIOS-u zminiejszają bezpieczeństwo systemu (np: również dzięki nim w systemie
operacyjnym DOS można było odczytać dowolną informację z dysku);



przerwania te nie zapewniają wsparcia dla nowych typów urzadzeń.

Wymienione systemy korzystają z własnych przerwań, których idea jest dokładnie tak sama jak w przypadku
przerwań BIOS-u.

Przerwanie jest sygnałem informującym procesor o zajsciu pewnego zdarzenia (np: naciśnięcie klawisza),
które powinno być obsłużone. Procesor zaczyna wykonywać kod mający obsłużyć dane zdarzenia. Kod ten
nazywamy procedurą oblsugi przerwania.
Podczas startu systemu, BIOS inicjuje tzw.: tablicę wektorów przerwań, która zawiera informacje o adresach
procedur obsługi przerwań. Jest ona zbiorem 256 dalekich wskaźników (nazywanych wektorami) i
umieszczona jest w pamieci pod adresem 00:00h (czyli sam początek pamieci RAM).

Oto zawartosc omawianej tablicy dla komputerów PC:

Przerwanie Położenie wektora

Typ

Zadanie

00h

0000:0000h

PROCESOR Błąd dzielenia przez zero

01h

0000:0004h

PROCESOR Przerwanie pracy krokowej

02h

0000:0008h

SPRZĘT

NHI/błąd koprocesora

03h

0000:000Ch

PROCESOR Zatrzymanie programu

04h

0000:0010h

PROCESOR Nadmiar arytmetyczny

05h

0000:0014h

BIOS

Wydruk ekranu

SPRZĘT

Przekroczenie wartości granicznych

06h

0000:0018h

PROCESOR Niepoprawny kod operacji

07h

0000:001Ch

PROCESOR Brak koprocesora

08h

0000:0020h

PROCESOR Podwójny błąd

SPRZĘT

IRQ0: timer systemowy

09h

0000:0024h

PROCESOR Przepełnienie stosu koprocesora

Page 1 of 6

BIOS - przerwania

2008-05-19

http://students.mimuw.edu.pl/SO/Projekt03-04/temat3-g4/przerwania.html

background image

SPRZĘT

IRQ1: klawiatura

0Ah

0000:0028h

PROCESOR Nieważny TSS

SPRZĘT

Symulowany IRQ2

0Bh

0000:002Ch

PROCESOR Brak segmentu

SPRZĘT

IRQ3: drugi port szeregowy

0Ch

0000:0030h

PROCESOR Przepełnienie segmentu stosu

SPRZĘT

IRQ4: pierwszy port szeregowy

0Dh

0000:0034h

PROCESOR Ogólny błąd ochrony

SPRZĘT

IRQ5: sterownik HDD

0Eh

0000:0038h

SPRZĘT

IRQ6: sterownik FDD

0Fh

0000:003Ch

SPRZĘT

IRQ7: port równoległy

10h

0000:0040h

BIOS

Funkcje BIOS-u karty graficznej

11h

0000:0044h

BIOS

Określenie wyposażenia

12h

0000:0048h

BIOS

Określenie wielkości pamięci podstawowej

13h

0000:004Ch

BIOS

Funkcje BIOSu FDD i HDD

14h

0000:0050h

BIOS

Funkcje BIOSu portów szeregowych

15h

0000:0054h

BIOS

Funkcje obsługi systemu i rozszerzenia BIOS-u

16h

0000:0058h

BIOS

Funkcje BIOSu obsługi klawiatury

17h

0000:005Ch

BIOS

Funkcje BIOSu obsługi drukarki

18h

0000:0060h

BIOS

Procedura obsługi awarii przy starcie komputera

19h

0000:0064h

BIOS

Procedura załadowania sektora startowego

1Ah

0000:0068h

BIOS

Obsługa timera i zegara czasu rzeczywistego

1Bh

0000:006Ch

BIOS

Obsługa Ctrl-Break

1Ch

0000:0070h

BIOS

Obsługa licznika systemowego

1Dh

0000:0074h

WSKAŹNIK

Tabela parametrów sterownika karty graficznej

1Eh

0000:0078h

WSKAŹNIK

Tabela parametrów FDD

1Fh

0000:007Ch

WSKAŹNIK

Zestaw znaków karty graficznej

20h-3Fh

0000:0080h

Zarezerwowane

40h

0000:0100h

BIOS

Alterenatywny wektor funkcji BIOSu dyskietki

41h

0000:0104h

WSKAŹNIK

Tabela paramterów HDD

42h

0000:0108h

BIOS

Domyśliny sterownik karty graficznej EGA

43h

0000:0110h

WSKAźNIK

Zestaw znaków karty graficznej

44h-45h

0000:0110h

Zarezerwowane

46h

0000:0118h

WSKAŹNIK

Tablea prametrów HDD

47h-49h

0000:011Ch

Zarezerwowane

4Ah

0000:0128h

BIOS

Obsługa alarmu zegara czasu rzeczywistego

4Bh-4Fh

0000:012Ch

Zarezerwowane

Page 2 of 6

BIOS - przerwania

2008-05-19

http://students.mimuw.edu.pl/SO/Projekt03-04/temat3-g4/przerwania.html

background image

Wywołując przerwanie musimy podać numer funkcji, która ma zostać wykonana. Robi się to wpisując do
rejestru AX nazwę interesującej nas funkcji. W pozostałych rejestrach należy podać parametry wywoływanej
funkcji.

Oto opis funkcji poszczególnych przerwań BIOSu:

60h-67h

0000:0180h

Przerwania programów użytkownika

68h-6Fh

0000:01A0h

Zarezerwowane

70h

0000:01C0h

SPRZĘT

IRQ8: zegar czasu rzeczywistego

71h

0000:01C4h

SPRZĘT

IRQ9: skierowane z IRQ2

72h

0000:01C8h

SPRZĘT

IRQ10

73h

0000:01CCh

SPRZĘT

IRQ11

74h

0000:01D0h

SPRZĘT

IRQ12: interfejs myszy

75h

0000:01D4h

SPRZĘT

IRQ13: błąd koprocesora

76h

0000:01D8h

SPRZĘT

IRQ14: sterownik HDD

77h

0000:01DCh

SPRZĘT

IRQ15

78h-7Fh

0000:01E0h

Zarezerwowane

80h-F0h

0000:0200h

Zarezerwowane

F1h-FFh

0000:03C4h

Przrwania programów użytkownika

Nr przerwania Nr funkcji

Opis funkcji

05h

Obsługuje klawisz Print Screen

10h

00h

Ustawia tryb karty graficznej

01h

Ustawia rozmiar kursora

02h

Ustawia pozycję kursora

03h

Odczytuje pozycję kursora

04h

Odczytanie pozycji pióra świetlnego

05h

Ustawia aktywną stronę

06h

Przewija stronę do góry

07h

Przewija stronę w dół

08h

Odczytuje znak i atrybut

09h

Pisze znak wraz z atrybutem

0Ah

Pisze tylko znak

0Bh

Ustawia paletę barw

0Ch

Rysuje piksel

0Dh

Odczytuje piksel

0Eh

Pisze znak i przesuwa kursor

0Fh

Podaje tryb pracy karty graficznej

13h

Pisze tekst

Page 3 of 6

BIOS - przerwania

2008-05-19

http://students.mimuw.edu.pl/SO/Projekt03-04/temat3-g4/przerwania.html

background image

1A00h

Odczytanie kodów kart graficznych

11h

Podaje informację o zamontowanym wyposażeniu

12h

Podaje wielkość pamięci podstawowej

13h

00h

Reset napędu (FDD lub HDD)

01h

Stan zakończenia ostatniej operacji IO

02h

Czyta sektory

03h

Zapisuje sektory

04h

Weryfikuje sektory

05h

Formatuje ścieżkę

08h

Podaje parametry dysku

09h

Inicjalizuje parametry dysku

0Ah

Czyta długie sektory

0Bh

Zapisuje długie sektory

0Ch

Idzie do cylindra

0Dh

Alternatywny reset dysku

10h

Sprawdzenie gotowości dysku

11h

Rekalibracja dysku

12h

Wykonuje diagnosykę RAM

13h

Wykonanie diagnostyki sterownika

14h

Podaje typ stacji FDD

15h

Podaje typ HDD

16h

Sprawdza stan linii zmiany nośnika FDD

17h

Ustawia typ dyskietki do formatowania (FDD)

18h

Ustawia typ nośnika do formatowania (HDD)

19h

Parkuje głowicę (HDD)

14h

00h

Inicjalizuje port szeregowy

01h

Wysyła znak przez port szeregowy

02h

Odbiera znak przez port szeregowy

03h

Podaje stan portu szeregowego

04h

Rozszerzona inicjalizacja portu szeregowego

05h

Rozszerzone sterowanie modemem

4Fh

Przechwycenie naciśnięcia klawisza

80h

Przechwycenie otwarcia połączenia

81h

Przechwycenie zamkniecia połączenia

82h

Przechwycenie zakończenia procesu

83h

Ustawia/kasuje timer

84h

Podaje stan joysticka

Page 4 of 6

BIOS - przerwania

2008-05-19

http://students.mimuw.edu.pl/SO/Projekt03-04/temat3-g4/przerwania.html

background image

15h

85h

Obsluga klawisza SysRq

86h

Bezwarunkowe oczekiwanie

87h

Przesunięcie blokowe

88h

Podaje wielkość pamięci rozszerzonej

89h

Przełączenie na tryb chroniony

90h

Oczekiwanie na urządzenie

91h

Przerwania zakończenia

C0h

Podaje informacje o środowisku pracy

C1h

Podaje segment rozszerzonego BDA

C200h

Włącza/wyłącza mysz PDI

C201h

Resetuje mysz PDI

C202h

Ustawia częstotliwość próbkowania myszy PDI

C203h

Ustawia częstotliwość myszy PDI

C204h

Podaje typ myszy PDI

C205h

Inicjalizuje mysz PDI

C206h

Pobranie/ustawienie skalowania myszy PDI

C207h

Ustawia adres sterownika myszy PDI

D800h

Podaje informacje o gnieździe EISA

D801h

Podaje informacje o funkcjach

D802h

Wymazuje konfigurację

D803h

Zapisuje konfigurację

16h

00h

Odczytuje znak z klawiatury

01h

Sprawdza czy są gotowe dane z klawiatury

02h

Podaje stan klawiatury

03h

Ustawienia szybkości klawiatury

05h

Zapisuje znak do bufora klawiatury

10h

Odzczytuje znak z klawiatury rozszerzonej

11h

Sprawdza czy są gotowe dane z klawiatury rozszerzonej

12h

Podaje stan klawiatury rozszerzonej

17h

00h

Drukuje znak

01h

Inicjalizuje port drukarki

02h

Pobiera słowo stanu drukarki

1Ah

00h

Podaje stan licznika systemowego

01h

Ustawia stan licznika systemowego

02h

Podaje stan zegra RTC

03h

Ustawia czas RTC

04h

Podaje datę RTC

Page 5 of 6

BIOS - przerwania

2008-05-19

http://students.mimuw.edu.pl/SO/Projekt03-04/temat3-g4/przerwania.html

background image

Jak wcześniej już napisałem, Linux nie korzysta z przerwań BIOS-u (wyjątkiem jest tylko start i zakończenie
pracy systemu). Przechodząc do trybu chronionego inicjuje on własną tablicę przerwań, do której wskaźnik
znajduje sie w rejstrze idtr.
Wyjątki, o których napisałem wyżej, występują w LILO i funkcji setup(). Np. LILO wyświetlając "Loading"
korzysta z przerwania BIOS-u, a funkcja setup() (znajdująca sie pod adresem 0x00090200) używając BIOS-u
otrzymuje informacje ozainstalowanej pamięci w komputerze.

05h

Ustawia datę RTC

06h

Ustawia alarm RTC

07h

Resetuje alarm RTC

1Ch

Obsługa systemowego sygnału zegarowego

Page 6 of 6

BIOS - przerwania

2008-05-19

http://students.mimuw.edu.pl/SO/Projekt03-04/temat3-g4/przerwania.html


Wyszukiwarka

Podobne podstrony:
asm BIOS INT
asm skrot prezentacji
6 dsp bios
Jak wgrać BIOS bez stacji dyskietek
Bios Leksykocn Kieszonkowy (Helion)
EMP7700 ASM E B SM
BIOS bezboleśnie, różne, Bios
Komunikaty i kody błędów BIOS, różne, Bios
Metoda Charlesa Blissa - kopia z int, Fizjoterapia, kinezyterapia
Int
BIOS
Standardowe has a Bios
int iors pl
23965 Przewodnik po prawie int Nieznany
Fot wyk3 int
asm z5 psp n
Aktualizacja BIOS u
BIOS porady

więcej podobnych podstron