Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.PodstawyAsemblera
15
pomocąspecjalnychrozkazów,INiOUT,któresłużątylkodotegocelu.Naprzykładrozkaz
OUTDX,ALprzesyłazawartośćrejestruALdoportuI/OprzezwybranyrejestrDX.
Niektórewyjściaurządzeńmająodwzorowaniawpamięciionekontrolowaneprzez
adresypamięci,anieprzezportyI/O.Takczęścioworzeczsięmazmonitorami,któremają
sweodwzorowaniaw1MBpamięci,arównocześnie,wwypadkuniektórychichfunkcji,
możnanimisterowaćzapomocąrozkazówI/O.
1.7.
Przerwania;wektoryprzerwań
Przerwaniadziałaniami,zapomocąktórychzewnętrzneukładywstosunkudojed-
nostkicentralnej,CPU(ang.CentralProcesorUnit)sygnalizujązajściejakiegośzdarzenia
(np.wciśnięciaklawisza)iżądająokreślonegodziałania.SystemBIOSisystemoperacyjny
(zwyklejesttoDOS)wprowadzająswojeprzerwaniaprogramowe,abyprzywołaćiwykonać
specjalneprogramyobsługi.Przyjrzyjmysięjednaknajpierwmechanizmowisamegoprzerwa-
nia.
Gdyzachodziprzerwanie,sterowanienadkomputeremprzejmujeprogramobsługiprze-
rwań,któryzwykleznajdujesięwpamięciROM.Programtenprzywoływanyjestprzez
załadowaniejegoadresusegmentowegodoodpowiednichrejestrówprocesora;pełnyadres
zawartyjestwparzerejestrówCSiIP.Adresysegmentowepotrzebnedozlokalizowania
programówobsługiprzerwańnazwanezostaływektoramiprzerwania.
Wektoryprzerwańustawionewstanpoczątkowywczasieuruchamianiakomputera
iwskazująprogramyobsługiprzerwańzawartewpamięciROM(ROM,pamięćtylkodo
odczytu).TewektoryprzerwańprzechowywanewpostacitabeliwpamięciRAMjakopara
słówzadresemwzględnympierwszesłowo,izczęściąsegmentowądrugiesłowo.(RAM
pamięćdoodczytuizapisu,początekobszarukonwencjonalnejpamięciRAMwkomputerze
PCzaczynasięodadresu0,akończyna640KB).Taparasłówprzechowywanajestwpamięci
wsposóbodwrotny(np.odczytanywpamięciwektorprzerwań54FF00F0należyczytać
F000:FF54,SEGMENT:OFFSET).Wektoryprzerwańmożnazmieniaćtak,abywskazywały
noweprogramyobsługiprzerwań.
WrodziniekomputerówPCistniejątrzygłównekategorieprzerwań.Pierwsza,totakie
przerwania,któregenerowaneprzezobwodykomputerawodpowiedzinajakieśzdarzenia,
np.naciśnięcieklawisza.Przerwaniateobsługiwaneprzezsterownik(i)przerwań8259,
któryustawiajewkolejnościichważności,zanimprześlejedojednostkicentralnej(CPU)
wceluichwykonania.DrugakategoriatoprzerwaniagenerowaneprzezCPUjakopewnego
rodzajuproduktubocznywyjątkowychdziałańprogramu,np.dzielenieprzez0.Trzeciakate-
goriaprzerwańtoprzerwaniacelowogenerowaneprzezprogramyjakosposóbwywołania
odległychpodprogramówprzechowywanychwpamięciRAMlubROM.Przerwaniate,zwane
przerwaniamiprogramowymi,częściąskładowąROM-BIOSisystemuoperacyjnego.
Możliwajestzmianaprogramówobsługiprzerwańbądźnapisanienowych(gdyzaistniejetaka
potrzeba).Abywprogramieprzywoływaćprzerwaniaprogramowe,należyużywaćrozkazu
INTzargumentemokreślającymnumerprzerwania,liczbąod0do255.Naprzykład:INT10H
przerwanienależącedosystemuBIOSobsługująceekranmonitora,INT21Hprzerwanie
należącedosystemuoperacyjnegoDOSzawierająceróżneusługisystemoweitp.(patrzroz-
dział„Tablicawektorówprzerwań”).
Istniejejeszczejeden,specjalnytypprzerwań,zwanyprzerwaniaminiemaskowalnymi
(NMIang.non−maskableinterrupts),stosowanydozwrócenianatychmiastowejuwagi
jednostkicentralnej.Przerwaniatenajczęściejsygnalizująjakieśsytuacjeniebezpieczne,np.