A programozási modell 32 - bites mikroprocesszor
Programozott processzor modell egy sor belső regiszterek a kulcs (3.5 ábra). Minden CPU regiszterek saját nevet, amellyel meg lehet fellebbezni a csapat a programot. Regiszterek processzorok bővült 32 bit, amint azt az E betű előtt álló regiszter nevét. Cél és használatának módja a nyilvántartások lehet osztani a következő csoportok:
# 159; Általános célú regiszterek (EAH, EVH, ESKH, EDH, ESI, EDI, EBP, ESP);
# 159; Szegmens regiszterek (CS, DS, SS, ES, FS, GS);
# 159; Utasítás mutató (EIP);
# 159; Regisztráció (vagy pointer) zászló (EF);
# 159; Ellenőrző regiszterek (CR0, CR1, CR2, CR3);
# 159; Debug regiszterek (DR0 ... DR7);
# 159; Regiszterek teszt (TR3, TR4, TR5, TR6, TR7);
# 159; modell-specifikus regiszterek (attól függően, hogy az adott modell a processzor).
Röviden ismertetjük a szerkezete és funkciója e nyilvántartások.
Általános célú regiszterek
EAX (Extended akkumulátor, akkumulátor); EBX (Extended alap, bázis); ECL (Extended számláló, count); EDX (Extended dátum, adat); ESI (Extended forrás index, forráskód); EDI (Extended cél index, az index a vevő); ESP (Extended bázis mutató, a bázis pointer); EBP (Extended stack pointer, verem mutató).
Zászlók EFLAGS regiszter is kiterjed 32 bit Bit 0-15 megadott 8086 és 80286, az egykori célból számos zászlók adunk az Advent a feldolgozók 4. és 5. generációs. Regisztráció zászlók három csoportba sorolhatók: - rendszer zászlók; - állapotjelző; - vezérlő jelzőket.
Bit megbízás zászlók EFLAGS regisztrációhoz rendszert mutatunk be, ellenőrzés céljából és állapot zászlók, lásd MP 8086.
VIP (Virtual Interrupt Érkezik) - a virtuális megszakítást (P5 +).
(ID Flag) - azonosítása csapat a rendelkezésre álló zászló CPUID (P5 + és néhány 486).
AC (Alignment Check) - összehangolás ellenőrzés zászló.
VM (Virtual 8086 Mode) - a védett mód virtuális processzort tartalmaz módban 8086.
RF (Folytatás Flag) - megújítási flag regiszter együtt használható töréspont.
IOPL (Input / Output Privilege Level) - szint I / O jogosultságokat.
NT (beágyazott Task Flag) - beágyazott feladat zászló.
Ellenőrző regiszterek (kontroll regiszterek) CRO, CR1, CR2, CR3 32 bites regiszter, tárolt processzor állapotát jelzések (3.6 ábra) CRO regiszter teljes vezérlést biztosít a processzor működési módok.
CR1 regiszter nem használható.
CR4 nyilvántartásban bit engedélyezi építészeti bővítmények
31 16 12 1110 9 8 7 6 5 4 3 2 1 0
3.6 ábra - Ellenőrző processzor regiszterek
Regiszterek hibakeresés (Debug Register) célja, hogy meghatározza és kezelése hibakeresés töréspont.
Regiszterek DR4, DR5 Pentium processzort, ha bekapcsolt chennom tágulási hibakeresés regisztrálja ezt a címet okozhatnak elfogadhatatlan műveleti kód kivételével (#UD).
DR6 nyilvántartás (töréspont Status) állapotát tükrözi az ellenőrzőpont.
DR7 nyilvántartás (töréspont Control) szabályozza a beállítást ellenőrzési pontok.
TR3 - belső gyorsítótár adatok nyilvántartásba.
TR4 - Cache Test Status Register.
TR5 - teszt vezérlő regiszter cache.
TR6 - regisztrálj oldal caching teszt.
TR7 - adatregiszterében a tesztoldal cache-t.
Modell-specifikus regiszterek MSR (Model-specifikus regiszterek) úgy vannak kialakítva, hogy ellenőrizzék a hibakeresés kiterjesztéseket, teljesítmény nyomon követése, gépi vezérlés, caching területek fizikai memória és egyéb funkciók. Céljuk van kötve egy adott processzor, a készítmény változik modelltől, kiváltságos hozzáférést.
- elmozdulás (kiszorítás vagy Disp) 8-, 16- vagy 32-bites számot tartalmazza a parancsot;
- az alap (Base) -soderzhimoe bázisregiszter;
- Index (Index) - a tartalmát egy index regisztert;
- Scale (Scale) egy faktor (1, 2, 4 vagy 8) feltüntetett utasítás kód.
EA = Base + Index × Scale + Disp
Amellett, hogy nyilvánvaló felhasználását verem utasítások PUSH és POP, a verem automatikusan használják a processzort, ha a call utasítást (CALL) visszatér (RET és IRET), a belépési és kilépési eljárásokat (ENTER és szabadság), és megszakítja kezelése.
Megszakításával a verem és az értéket is el van helyezve EFLAGS nyilvántartásba. Az utasításokat visszaút ezeket az értékeket a veremből az adott nyilvántartások és a processzor továbbra is végrehajtja a megszakított utasítások sorozata.
A stack használják a következő célokra:
- Szervezet szakítsa hívások és visszatér;
- ideiglenes adatok tárolása, mikor, amelynek értelmében nincs értelme kiosztani fix memória;
- tompított paraméterek és vissza, ha eljárás hívások.
Felhasználása előtt a verem meg kell inicializálni - kell beállítani az SS és ESP-választó úgy, hogy rámutat arra, hogy a valódi memória.
Megszakítások és kivételek
Megszakítások és kivételek zavarja a normális a program végrehajtását a feldolgozás külső események vagy megszakítása parancsot.
Megszakítások vannak osztva hardver okozta elektromos jelek a processzorhoz bemenet, és a szoftver által végrehajtott INTxx csapat.
Szoftver megszakítások, szigorúan véve, a megszakítás nem, ez csak egy sajátos módon a hívó eljárások, de ezek feldolgozó által feldolgozott egyfajta csapda.
Szakítsa meg vagy kivételfeldolgozás tartja a stack regiszter (E) zászlók és mutató CS: (E) IP az utasítást, hogy el kell végezni a kezelés megszakítását követően. Ez a kézikönyv biztosítja, hogy a végrehajtása során, amely már megszakadt. Védett módban, amikor számos kivételt a verem még mindig fennmaradt, és a hibakód. Tárolása után ezeket az értékeket, a processzor a végrehajtás a megszakítás feldolgozó program (kizárás) meghatároz egy belépési pont bele egy számot (0-255) a megszakítás táblázatban. Az utolsó parancs a megszakítás kezelő legyen használati IRET vissza, amelyen a stack pointer helyreáll CS: (E) IP és az előző érték zászlókat. Így az interrupt parancs processzor a következő műveleteket végzi:
4. tiltja külső megszakítások, IF: = 0;
7. lehetővé teszi a külső megszakítások, HA: = 1;
8. végrehajtása kezdődik az alap CPU ciklust.
Hardver megszakítások végzik ugyanazt az algoritmust ipodrazdelyayutsya a maszkolt és maszkolt.
Maszkolható megszakítást vypolnyayutsyapri engedélyt jelző (IF = 1).
NMI végre állapotától függetlenül a zászló KF jel NMI (Non Mascable Interrupt). Ő kezelés nem szakítható előtt IRET parancsot.
Kivételek (kivételes), és speciális esetekben vannak osztva hibák, csapdák és befejezését riasztásokat. Az eltérés csupán a tárolt értékei CS: (E) IP.
Megtagadása (hiba) - ez egy kivétel, amely megtalálható és karbantartani, hogy végre egy utasítást, hogy okozza a hibát. Miután szolgáltatást a kivétel, a vezérlés visszakerül vissza ugyanazt az utasítást (beleértve bármilyen prefix), ami miatt a hiba.
Trap (csapda) - ez egy kivétel, amely érzékeli és karbantartott után az utasításokat elhívása. Szolgáltatás után ez a kivétel a vezérlés visszakerül a következő utasítást. Ebbe az osztályba tartozik a csapdákat és szoftver megszakítások.
Megszakítás (abort) - ez egy kivétel, hogy nem lehet pontosan beállítani utasítás hívták. Ezt alkalmazzák a súlyos hiba, mint például egy hardver hiba vagy sérülés a rendszer táblák.