Основни регистри в i86-класа
| Информационни технологии | 2009-12-04 | 124 сваляния |
Основни регистри в i86-класа
-
Регистри с общо предназначение. Универсални регистри.
а) ЕАХ регистъра или еах. Това е случая, когато регистъра е 32-а разряда. Цялата фамилия компютри в i86 са програмно съвместими от долу на горе, което означава, че програми създадени за по-малките модели трябва да работят нормално и в големите компютри, но не и обратното. Затова се получава, че при големите компютри се имитират малките модели. За такъв случай от целия регистър ще се използва само половинката, т.е. 0-15. Тази половинка се нарича АХ (ах) регистър. Е-extended АХ разширен регистър (32 бита), а АХ е само 16 бита. AH и AL са делението на АХ регистъра. Н-High старши, L-low младши, а абревиатурата А идва от Accumulator. Този регистър се използва само при опция умножение / деление, входно/изходни операции, а също така и при едноадресни инструкции.
б) Следващия регистър е ЕВХ (ebx). Половинката от него ще бъде BX (bx). B = Base. Този регистър се използва като указател на базовия (началния) адрес при адресация на данните.
в) Регистър ЕСХ (есх), съответно СХ (сх). Тук С=Counter, който означава брояч. Този регистър се използва за отброяване на цикли, повторения и измествания при умножение.
г) Регистър EDX (edx); DX (dx); D = Data (Данни) в него се поместват данни при умножение, деление и входно/изходни операции.
д) Регистър ESI (esi); SI (si); Тук вече няма адресация на байтовете I = Index, S = Source. Това е индексен регистър-източник. Използва се при индексиране на операндите при обработка на низове от данни.
е) Регистър EDI (edi); DI (di); Destination Index Индексен регистър-приемник. Този регистър се използва също за индексация на операндите когато се извършва обработка на низове от данни.
ж) Регистър ЕВР (ebp); BP (bp) Base Pointer показва началния адрес на стека.
Def.: Стек начин на организация на информацията в паметта.
-
Предполагаме, че паметта е разделена на клетки, които се попълват с информация. Организацията на паметта при стека се нарича LIFO (Last In First Out).
з) регистър ESP (esp); SP (sp); Stack Pointer Указател на стека показва първа свободна клетка в паметта, принадлежаща на стека.
-
Сегментни регистри. Те са 16 разрядни независимо от модела на компютъра:
-
CS; cs;
SS; ss;
DS; ds;
ES; es;
FS; fs;
GS; gs;
0
Първите 4 регистъра се използват и при 16 и при 32 битови компютри, а последните 2 само при 32 битови компютри.
Сегмент: сегмент наричаме част от паметта използвана за текущата задача. Той определя базовият адрес от където се записва и съответната информация.
-
CS Code Segment кода на програмата. Това е такъв сегмент, който съхранява програмата написана на машинен език, а CS съдържа началния адрес на сегмента, който съхранява тази програма.
-
SS Stack Segment Този регистър съхранява базовият адрес на сегмента, който се използва за стекови операции.
-
DS Data Segment Този регистър съдържа базовият адрес на сегмента, където се разполагат данни използвани от текущата машинна програма.
-
ES Extra Segment съдържа базовият адрес на допълнителният сегмент за данни.
-
Последните два регистъра FS, GS се използват като допълнителни сегментни регистри за данни, които се използват в защитен режим.
-
Към третата група регистри можем да споменем : Програмен Брояч, наричан още EIP, IP, т.е. Instruction Pointer който също използва само 0-15-я бит от 32-та бита.
-
Флагови регистри EFLAGS таблица 1.
При този регистър повечето битове се използват самостоятелно и служат като указатели (индикатори) за работата на компютъра и се използват от ОС или части от нея BIOS.
-
0-левия бит при всички модели се означава с C = Carry. Този бит се установява в 1-ца когато възниква преносът при аритметични инструкции или при изместване или при ротации. (Ротацията представлява изместване на старшия бит зад най-младшия т.е. 101011 -> 010111.
-
2-рия бит P = Parity четност. Този бит се установява в 1 при четен брой единици в Байта и служи при контрол на предаваната информация по четност. В приемника има схеми, които преобразуват информацията, т.е. сравняват четността на 1-ците, контролните разряди и ако те съвпадат следователно няма грешка, а ако се различават значи е възникнала грешка при предаването.
-
4-ти бит A = Auxiliary Допълнителен. Той се използва за посочване на преноса при десетичната аритметика или ако се взема заем от предишната тетрада.
-
6-ти бит Z = Zero. Този флаг се установява в 1, ако се получава нулев резултат при някаква операция.
-
7-ми бит S = Sign. Установява се в 1, ако при изпълнение на текущата операция се получи отрицателен резултат.
-
8-ми бит T = Trap. Този флаг се използва от програми, които извършват настройка на текущата програма, задача. Когато този бит е установен в 1 се предизвиква спиране на текущата програма след всяка изпълнена машинна инструкция, т.е. се предизвиква стъпково изпълнение на програмата,
Тагове от реферата: универсани, егистри, преднаение, регистъра, регистри, основни











