Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.1.Modelprocesorówrodzinyx86wtrybierzeczywistym
19
T
(ang.Trapflag)flagapracykrokowej,dlaT=0powykonaniukażdegorozkazujest
generowanywyjąteknr1.
Cechącharakterystycznąrejestrówogólnegoprzeznaczeniajestmożliwośćich
użyciawdowolnychoperacjacharytmetycznychlublogicznych.Rejestry,którychnazwy
zaczynająsięliterąE,rejestrami32-bitowymi.Młodsze16-bitoweczęścitychreje-
strównosząnazwyAX,BX,CX,DX,którezkoleipodzielonenadwie8-bitoweczęści
oznaczaneliterąL(częśćdolna)iH(częśćgórna).Każdyzrejestrówogólnegoprze-
znaczeniaspełniapewnądodatkowąindywidualnąfunkcję:(E)AXrejestrstosowany
wyłączniewoperacjacharytmetycznychilogicznych(ang.accumulator),(E)BXrejestr
adresowydanych(ang.base),(E)CXrejestrlicznikowydlarozkazówpętliiteracyjnych
(ang.counter),(E)DXrejestradresowyukładówwe/wy(ang.data),(E)BPrejestr
adresowydanychwsegmenciestosu(ang.BasePointer),(E)SPwskaźnikstosu(ang.
StackPointer),(E)SI,(E)DIrejestryindeksowe(ang.Source,DestinationIndex).
WskaźnikrozkazuIP(ang.InstructionPointer)zawieraadresrozkazu,który
będziewykonywanywnastępnymcyklurozkazowym.Ściślejmówiąc,rejestrIPzawiera
adreswzględempoczątkusegmentuprogramu(ang.offset).
Doadresowaniadanychwtrybierzeczywistymużywanewyłącznierejestry
16-bitowe(BX,BP,SP,SI,DI).Istniejetakżemożliwośćwykonywaniaoperacjinadanych
32-bitowychzzastosowaniemrejestrówEAX,EBX,ECX,EDX,ESI,EDI.
Rola16-bitowychrejestrówsegmentowychonazwach:CS(ang.CodeSegment),
DS(ang.DataSegment),SS(ang.StackSegment)iES(ang.ExtraSegment)wtrybierze-
czywistympoleganaprzechowywaniuadresówbazowychsegmentuprogramu,danych,
stosuidodatkowegosegmentudanych.Wartozwrócićuwagę,żew32-bitowymproceso-
rze80386inastępnychdodanojeszczedwarejestrysegmentoweonazwachFSorazGS,
którejednakdostępnewyłączniewtrybiechronionym.Zasadęsegmentacjipamięci
wtrybierzeczywistymprzedstawionowpunkcie1.1.2.
1.1.2.Segmentacjapamięciwtrybierzeczywistym
Użytkownicyorazprogramiścisystemukomputerowegonajczęściejnietraktująpamię-
cioperacyjnejjakoliniowejtablicybajtów(tzw.pamięćfizyczna),araczejmająnamyśli
podprogramy,procedury,moduły,programgłówny,jakrównieżstrukturydanych
listy,tablice,stosyitp.Wymienionestrukturymogąbyćprzechowywanewodrębnych
segmentach,tworzącwtensposóblogicznąorganizacjępamięci(tzw.pamięćlogiczna).
Segmentacjąnazywasięschematzarządzaniapamięcią,któryurzeczywistniatensposób
widzeniapamięciprzezużytkownika.
Adresylogicznezawierajądwieskładowe(mówimy,żeadresjestdwuwymiarowy),
określającesegment(adresbazowysegmentu)orazodległość(przesunięcieang.offset)
odpoczątkusegmentu.Użytkownik(programista)odwołujesiędoobiektówwprogra-
miezapomocąadresudwuwymiarowego,podczasgdypamięćfizycznajestjednowymia-
rowymciągiembajtów.Nazewnętrznąmagistralęadresowąprocesorawystawiane
adresyfizyczne,alewewnątrzprocesoraadresyreprezentowanewsposóblogiczny: