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ęciisąonekontrolowaneprzez
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ń
Przerwaniasądziałaniami,zapomocąktórychzewnętrzneukłady–wstosunkudojed-
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ńustawionesąwstanpoczątkowywczasieuruchamianiakomputera
iwskazująprogramyobsługiprzerwańzawartewpamięciROM(ROM,pamięćtylkodo
odczytu).TewektoryprzerwańprzechowywanesąwpostacitabeliwpamięciRAMjakopara
słówzadresemwzględnym–pierwszesł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óregenerowanesąprzezobwodykomputerawodpowiedzinajakieśzdarzenia,
np.naciśnięcieklawisza.Przerwaniatesąobsł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,są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,INT21H–przerwanie
należącedosystemuoperacyjnegoDOSzawierająceróżneusługisystemoweitp.(patrzroz-
dział„Tablicawektorówprzerwań”).
Istniejejeszczejeden,specjalnytypprzerwań,zwanyprzerwaniaminiemaskowalnymi
(NMI–ang.non−maskableinterrupts),stosowanydozwrócenianatychmiastowejuwagi
jednostkicentralnej.Przerwaniatenajczęściejsygnalizująjakieśsytuacjeniebezpieczne,np.