CW 06 B przerw

background image

AK

Ćw. 6

Przerwania

Cel ćwiczenia: Zapoznanie się z obsługą przerwań w komputerze PC

Sprzęt i oprogramowanie: Komputer PC z systemem DOS, lub maszyna wirtualna z

systemem DOS, program ADF wersja 1 (nie używać do tego ćwiczenia wersji 2).

Sprzęt dodatkowy: Układ TLPT

Literatura: P.Metzger, „Anatomia PC” Wyd. Helion, dowolne wydanie (Rozdział „System

obsługi przerwań sprzętowych”), E. Wróbel, „Asembler – praktyczny kurs”, Helion, 2004,

G. Michałek, „Asembler nie tylko dla orłów”, Intersoftland 1997.

Zagadnienia:

Tablica wektorów przerwań

Kontroler przerwań

Numeracja przerwań

Zapamiętywanie stanu procesora

Powrót z programu obsługi przerwania

Polecenia:

1.

Odpowiedz na pytania:

a.

w których komórkach pamięci umieszczony jest adres programu obsługi

przerwania nr 15?

b.

Drukarce LPT1 Przypisano przerwanie sprzętowe 7. Czy numer przerwania, które

dotrze do procesora jest taki sam?

c.

Czym różni się program obsługi przerwania od zwykłego program (ze względu na

sposób uruchamiania)?

d.

Jak wygląda typowa struktura programu obsługi przerwania?

e.

W jaki sposób można odczytać adres programu obsługi przerwania?

f.

W jaki sposób można zmienić adres programu obsługi przerwania?

2.

Ustal jakie numery w tablicy wektorów przerwań odpowiadają następującym

przerwaniom sprzętowym: IRQ0 (przerwanie zegarowe), IRQ1 (przerwanie klawiatury).

background image

3.

Korzystając z programu AFD zajrzyj do tablicy wektorów przerwań i zanotuj adresy

przerwań 0, 3, 5, 8 i 9. ( W programie AFD wpisz polecenie DS=0. Na koniec przywróć

starą wartość DS wpisując DS=CS).

4.

Napisz program zliczający przerwania zegara. Zwróć uwagę, aby nie zakłócić innych

procesów korzystających z tego samego przerwania. Na końcu programu (zamiast IRET)

wstaw skok do standardowego programu obsługi tego przerwania. Licznik utwórz w

pamięci operacyjnej. Dodatkowo wyślij mniej znaczący bajt licznika do portu 378h.

5.

Napisz program zliczający przerwania klawiatury. Zwróć uwagę, aby nie zakłócić innych

procesów korzystających z tego samego przerwania. Na końcu programu (zamiast IRET)

wstaw skok do standardowego programu obsługi tego przerwania. Licznik utwórz w

pamięci operacyjnej. Dodatkowo wyślij mniej znaczący bajt licznika do portu 378h.

6.

Napisz program zliczający przerwania generowane przy naciśnięciu klawisza PrintScreen

(To przerwanie ma numer 5 w tablicy wektorów przerwań.)

7.

Napisz program zliczający impulsy podawane na linię ACK w łączu LPT1.

Wskazówki: Konieczne jest

a.

odblokowanie generowania przerwań w kontrolerze łącza LPT1 (patrz opis łącza LPT)

b.

odblokowanie przerwania IRQ7 w kontrolerze przerwań (patrz opis kontrolera

przerwań)

c.

wysłanie do kontrolera przerwań słowa sterującego EOI (End Of Interrupt) w

programie obsługi przerwania (patrz opis kontrolera przerwań)


Wyszukiwarka

Podobne podstrony:
Instrukcja do ćw 06 Sterowanie pracą silnika indukcyjnego za pomocą falownika
Cw 06 Newton Raphson
Cw 06 Gauss Seidel
Cw 06
Cw 06 Siatka dyfrakcyjna id 121 Nieznany
Cw 06
cw 06 analiza modeli predykcyjnych
Cw 06
CW6, Transport i Logistyka (AM) 1 (semestr I), Fizyka, fiza laborki (rozwiązania), Cw 06
acad cw 06 (2)
Ćw 06 Tworzenie i edycja bloków, nadawanie i zmiana atrybutów
acad-cw-06
Ćwiczenia PProg cw 06
Cw 06 (26) Wyznaczanie pojemności kondensatora
PProg cw 06
Ćw. 06, Obwód nieliniowy
acad cw 06

więcej podobnych podstron