általános célú regiszterek - studopediya
Regisztrál - ezek különleges emlékek, amelyeket közvetlenül a processzor. Regisztereket sokkal gyorsabb, mint a memória sejtek, így nyilvántartások széles körben használják az assembly nyelvű programokat és magas szintű nyelvi fordító.
Regiszterek osztható általános célú regiszterek. utasítás mutató. zászlók regisztrálni és szegmens regiszterek.
Általános célú regiszterek
Általános célú regiszterek tartalmazzák egy csoportja 8 regiszterek, hogy lehet programozni assembly nyelven. Minden regiszterek 32 bit hosszú és osztható két vagy több részre.
Amint az ábrából látható, ESI regiszterek, EDI, ESP, és EBP lehetővé teszik a hozzáférést a alsó 16 bitje SI nevek, DI, SP és a BP sorrendben, az EAX regiszter, EBX, ECX, és EDX hozzáférést mind az alsó 16 bitet (a neveket AX , BX, CX és DX), és a két bájt egyedileg Jr. (nevek AH / AL, BH / BL, CH / CL és a DH / DL).
regisztrálja a név származik, helyükre:
- EAX / AX / AH / AL (akkumulátor regiszter) - akkumulátor;
- EBX / BX / BH / BL (bázisregiszter) -registr bázis;
- ECX / CX / CH / CL (számláló regiszter) - egy számláló;
- EDX / DX / DH / DL (adatregiszter) - az adatregiszter;
- ESI / SI (forrás index regiszter) - a forrás index;
- EDI / DI (cél indexregiszterként) - Vevő kód (recipiens);
- ESP / SP (stack pointer nyilvántartás) - stack pointer regisztert
- EBP / BP (bázis pointer nyilvántartás) - Regisztráció az alapja a verem mutatót.
Annak ellenére, hogy a jelenlegi specializáció, minden regiszter használható bármely gépi műveletek. Azonban figyelembe kell venni azt a tényt, hogy bizonyos parancsok csak bizonyos nyilvántartásokban. Például, szorzás és osztás az utasítások EAX és EDX regisztrálja tárolására bemeneti adatok és működési eredményt. ciklus vezérlőparancsokhoz ECX regiszter ciklusváltozóként.
Sajnos, a regiszterek száma túl kevés, és gyakran nehéz megtalálni a módját, hogy használja őket optimálisan.
EIP (utasítás mutató) regiszter tartalmazza az eltolás a következő parancsot kell végezni. Ez a nyilvántartás közvetlenül elérhető a programozó, de betöltés és a változó értékeit elő a különböző menedzsment csapatok, amelyek magukban foglalják a parancsokat a feltételes és feltétlen ugrások, hívás eljárások és a visszatérés az eljárásokat.
Flag - ez kicsit figyelembe az 1 értéket ( „jelző”), ha egy bizonyos feltétel teljesül, és az értéke 0 ( „reset zászló”) másként nem rendelkezik. A processzor egy regiszter zászlókat. tartalmaz egy sor olyan zászlók tükrözi a jelenlegi állapotában a processzort.
Az érték zászlók CF, DF és IF lehet változtatni közvetlenül a zászlók terül speciális utasítások (például CLD irányba állítani a zászló), de nem utasításokat, amelyek lehetővé teszik a címet a zászlók regisztrálni, mint egy közönséges eset. Azonban, akkor mentse el a zászlókat regisztráljon, hogy a kémény, vagy a nyilvántartás AH, és helyreállítsa a zászlók regisztrálja őket használó LAHF utasításokat. SAHF. PUSHF. PUSHFD. POPF és POPFD.
állapotjelzőket (bit 0, 2, 4, 6, 7 és 11) tükrözik a végrehajtásának eredményeképpen aritmetikai utasítások, mint például ADD. SUB. MUL. DIV.
- CF Carry flag be van állítva, amikor mozog a legjelentősebb bit / kölcsön a legnagyobb helyi értékű bit és jelenlétét jelzi a túlcsordulás az előjel nélküli egész aritmetika. Szintén használják a hosszú számtani.
- PF paritás jelző, amikor a legkevésbé fontos bájt az eredmény tartalmazza páros számú adat bit. Kezdetben ez a zászló már összpontosított a kommunikációs programok: átadását kommunikációs vonalak ellenőrzésére is lehet továbbítani paritás bit, és ellenőrzésére vonatkozó utasítások paritás flag ellenőrzését lehetővé az adatok sértetlenségét.
- Egy kiegészítő carry flag AF van beállítva, ha az átruházás a bitek a 3. eredmény / kölcsön a harmadik bit az eredmény. Ez a zászló középpontjában a használata BCD (binárisan kódolt decimális, BCD) számtani.
- Zero flag ZF van állítva, ha az eredmény nulla.
- Bejelentkezés zászló SF értéke a legjelentősebb bit az eredmény, amely a jel bit aritmetikai jel.
- túlcsordulás zászlója van beállítva, ha a egész eredményt túl hosszú elhelyezése a cél operandus (regisztrálni vagy memóriahely). Ez a zászló jelenlétét mutatja a túlfolyó a jele az integer aritmetikai.
Ezeknek a jelzőknek csak változtatni zászló CF közvetlenül STC utasításokat. CLC iCMC.
Az állapotjelző lehetővé teszi az azonos aritmetikai utasítások egy olyan eredményt három különböző típusa van: előjel nélküli, és aláírt bináris decimális (BCD) egész. Ha az eredmény akkor tekinthető egy előjel nélküli egész szám, akkor a CF zászló azt jelzi, a túlcsordulás (átutalással vagy hitel), hogy írja alá az eredményt az átutalás vagy a hitel mutatja zászlója, míg BCD-eredmény átutalás / kölcsön mutatja AF zászlót. Tükrözi a jel zászló SF jel eredményeképpen ZF flag tükrözi és aláírás, megjelölés és nulla eredményt.
A hosszú integer aritmetikai flag CF együtt használják azzal a kiegészítéssel, transzfer utasítások (ADC), és kivonás kölcsön a dest (SBB) carry szaporítási kölcsön vagy számítva egyetlen hosszú kisülési a másik.
Flag PF vezették be a kompatibilitást más mikroprocesszoros architektúrák és a tervezett célra ritkán használják. További általánosan használt együtt más zászlók az állam a lebegőpontos aritmetikai: összehasonlító utasításokat (... FCOM FCOMP, stb), a matematikai társprocesszor telepítve benne zászlók-körülmények között C0, C1, C2 és C3, és ezeket a zászlókat lehet másolni zászlók regisztráljon. Javasoljuk, hogy használjon FSTSW AX használati mentésére kulcsszavak koprocesszor állapot regiszter AX és SAHF utasítást követő másolást tartalmát AH regisztrációhoz alsó 8 bit a zászlók regisztrálni, a C0 belép a CF zászló, C2 - PF, C3 - ZF. C2 flag be van állítva, például abban az esetben, inkongruens érvek (NaN vagy nem támogatott formátum) a FUCOM összehasonlító utasításokat.