Procesorový register

z Wikipédie, slobodnej encyklopédie
Prejsť na: navigácia, hľadanie

Register je pamäťová jednotka, ktorá obsahuje binárne číslo. Toto číslo môže mať význam spracovávaných údajov, alebo adresy v závislosti od funkcie registra. Všetky registre procesorov i8086 a i8088 sú 16 bitové. Na obrázku sú registre rozdelené do štyroch skupín:

1. skupina - sú registre pre všeobecné použitie AX, BX, CX a DX

zlúčením horného a dolného bytu vzniká 16 bitový register: H = high = vyšší byte ( 8 bitov ) L = low = nižší byte ( 8 bitov )

AX = AH + AL BX = BH + BL CX = CH + CL DX = DH + DL

O tom, v akom formáte bude register využívaný, rozhodne použité adresovanie v inštrukcii. napríklad MOV AL,0A H - je použitý 8 bitový register AL MOV AX,0A H - je použitý 16 bitový register AX

2. skupina - sú indexové a smerníkové registre. Smerníky ukazujú na miesto v pamäti. Obsahujú vždy relatívnu adresu, ktorá je odvodená od počiatku adresy segmentu . Špeciálna skupina inštrukcií umožňuje pracovať s obsahom týchto registrov.

SP Smerník zásobníka ( Stack Pointer ) BP Smerník bázy ( Base Pointer ) SI Index zdrojového operandu ( Source Index ) DI Index cieľového operandu ( Destination Index )

3. skupina - sú špeciálne registre.

IP – Čítač inštrukcií F – Register príznakov

Čítač inštrukcii ( Instruction pointer IP ) je 16 bitový register , ktorý obsahuje relatívne adresy. Obsahuje adresu inštrukcie , ktorá sa bude vykonávať ako nasledujúca, alebo adresu operandu v pamäti. Programátor nemá priamu kontrolu nad týmto registrom.

Druhým registrom z tejto skupiny je register príznakov F. Je to skupina samostatných jedno bitových buniek, usporiadaných do 16 bitového poľa ako register. Príznaky, ktoré sa menia v závislosti od výsledkov operácií vykonávaných v ALU:

CF – príznak prenosu (carry flag ) PF - príznak parity (parity flag ) AF - príznak pomocného prenosu ( auxilliary carry flag ) ZF - príznak nuly ( zero flag ) SF - príznak znamienka ( sign flag ) OF - príznak preplnenia ( overflow flag ) Príznaky , ktoré nereagujú na výsledky operácií vykonávaných v ALU: TF - príznak ktorý riadi krokovanie „single step“ (trap flag ) IF - príznak pre povolenie externého prerušenia ak IF=1 ( interrupt flag ) DF – príznak pre riadenie reťazcových procesov. Ak DF = 1 ,potom je obsah smerníkov znižovaný. Ak DF = 0 , potom sa budú SI aDI zvyšovať.

4. skupina - sú segmentové registre.

CS – Kódový segment( Code Segment ) DS – Dátový segment( Data Segment ) SS - Zásobníkový seg.( Stack Segment ) ES - Extra segment( Extra Segment )

Sú to registre, ktoré obsahujú absolútne adresy počiatku segmentov. Adresy uvedené v indexových registroch a smerníkoch ( SP, BP, SI, DI ) adresujú vždy len priestor relatívne od začiatku segmentu. Segmentové registre sú 16 bitové, hoci reprezentujú 20 bitové adresy. 20 bitová adresa sa vytvára z hodnoty uloženej v týchto 16 bitových registroch tak, že sa na koniec údaju pridajú štyri bity, ktoré sú vždy nulové. Napríklad: Ak v registri CS = CE56 H znamená to, že absolútna adresa počiatku kódového segmentu je CE560 H