Treść książki
Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
18
1.Architekturaprocesorówrodzinyx86
procesorasąrealizowaneoperacjeprzetwarzaniadanych,ajednostkawspółpracy
zmagistraląjestodpowiedzialnazawystawianienazewnątrzprocesoraadresówfizycz-
nychpowcześniejszymprzetworzeniuadresówlogicznychzgodniezalgorytmemokre-
ślonymprzezsegmentacjępamięci.
1.1.1.Rejestryprocesora
Rejestryprocesoramożnapodzielićnaczterynastępującegrupy:rejestrflagowy,reje-
stryogólnegoprzeznaczenia,wskaźnikrozkazuorazrejestrysegmentowe.
Rejestrflagowy(znaczników)FRzawieraciągbitówcharakteryzującychwynik
ostatniejoperacjiarytmetycznejlublogicznej,atakżebityustawianeprogramowo,okre-
ślającesposóbpracyprocesora.Niemożeonbyćmodyfikowanyorazodczytywanybez-
pośrednio,adowykonywaniaoperacjinanimsłużąodrębnerozkazy(CLD,STIoraz
CMC).StrukturęrejestruFRprzedstawiononarys.1.2.
Rysunekl.2.Strukturarejestruflagowegoprocesorówrodzinyx86wtrybierzeczywistym
Bityrejestruflagowegomożnapodzielićna
•
bitywarunków–ustawianeprzezjednostkęarytmetyczno-logicznąpokażdej
operacjiarytmetycznejlublogicznejibędącepodstawądowykonywaniarozka-
zówskokówwarunkowych;
•
bitystanu–ustawianeprogramowo,określającesposóbpracyprocesora.
Bitywarunków:
C
(ang.Carryflag)–flaga(znacznik)przeniesienia,informującaowystąpieniu
przeniesieniaznajstarszegobituwyniku;
O(ang.Overflowflag)–flagaprzepełnienia,ustawianapodczasprzekroczeniazakresu
liczbzeznakiem;
Z
(ang.Zeroflag)–flagazera,ustawiana,gdywynikostatniejoperacjijestrównyzeru;
S
(ang.Sineflag)–flagaznaku,ustawiana,gdywynikostatniejoperacjijestujemny;
P
(ang.Parityflag)–flagaparzystości,ustawiana,gdywośmiumłodszychbitach
wynikuznajdujesięparzystaliczbajedynek;
A(ang.Auxiliarycarryflag)–flagaprzeniesieniapomocniczego,wykorzystywana
podczasoperacjinaliczbachdziesiętnychwkodzieBCD.
Bitystanu:
D(ang.Directionflag)–flagakierunku,określającakierunekoperacjinablokach
pamięci,dlaD=0operacjewykonywanesą„wprzód”(wkierunkunarastających
adresów),dlaD=1–wtył;
I
(ang.Interruptflag)–flagamaskowaniaprzerwań,dlaI=0przerwaniasązamaskowane;