Асемблер регистри: видове, назначения и екип функции

Процесорни клетки, наричани още асемблерни регистри, чрез своя контролер на ниско ниво на програмиране представляват вид блок от свободни елементи в паметта. Тяхната особеност е бързият достъп до паметта. Често регистрите се използват по време на изпълнение на командите на процесора и не са достъпни за програмиста. Например, при вземане на проби от наличния свръхбърза памет на следващия номер на командата, неговият код в двоичната система се поставя в регистъра. Директен достъп до регистъра не е възможен. В допълнение, съществуват редица налични блокове памет, но достъпът до тях е възможен само от корпуса на операционната система. Те включват регистрите на контролните сегменти, както и дескрипторите на сенчестата система. В техните работни регистри се използват единствено разработчици на ОС.


Видове регистри

Различни регистри на Асемблер се използват за различни нужди от програмиране. Използвайте ги в зависимост от целите. Например, брояч се използва за подреждане на прости и вложени контури. По-долу са дадени основните типове регистри на сглобяванията:
  • регистри с общо предназначение.
  • Индексни регистри.
  • Индексни регистри.
  • Елементи на сегментната памет.
  • Регистър на флаговете.
  • В действителност, всички регистри заемат 32 бита памет. Това означава, че те могат да съдържат числа от нула до 4294967295. Някои регистри са разделени на няколко части с 16 и 8 бита. Това ви позволява да контролирате или част от блокапамет, или клетка изцяло, записвайки в нея само част от данните.
    Монтажни сглобки са посочени в съответствие с изпълнените функции:
  • EAH - Акумулатор на регистъра на акумулатора;
  • EBX - Базова база;
  • ECX - Counter - отговаря за разходите;
  • EDX - Data - блок данни от клетки;
  • ESI - Изходен индекс - регистър на източника;
  • EDI - индекс на местоназначението - регистър на получателите;
  • ESP - указател на стека - показалец към стека;
  • EBP - Base Pointer - указател към основата на стека.
  • Характеристики на използването на регистри

    Трябва да се има предвид, че всеки от посочените регистри може да се използва не само за въвеждане на данни. Например, в основния регистър можете да въведете всяко десетично число и да го използвате като брояч. Въпреки това, не е желателно за тази цел да се използват блокове памет, съответстващи на указателите, ESP и EBP, тъй като това може да доведе до проблеми с достъпа до клетките на абстрактния тип данни. Назначаването на регистри за сглобяване е съхраняването на информация, за която може да се използва всякакъв вид.


    Регистрите с общо предназначение

    Този тип регистри е предназначен за съхраняване на данни след изчислителни операции. Всъщност те могат да използват командата comm за въвеждане на информация във всякаква форма и система: двоична, осмична, десетична или шестнадесетична. Друго име е регистрите за асемблерни данни. Списъкът на асемблерните регистри с общо предназначение включва:
  • EAH (акумулатор) регистър на акумулатора. Състои се от три младши блока от 8 бита: AX, AN, AL. Ако е необходимоможете да се свържете с две по-малки единици.
  • ЕВХ (база) - блокът данни, който отговаря за базата. Същите като всички регистри с общо предназначение, които се състоят от две малки глави от 8 бита и един шестнадесетичен бит. Така в един регистър могат да се поставят едновременно няколко цифрови стойности.
  • ECC (брояч) - отговаря за брояча. Използва се по време на цикъла. Без нея командата loop не работи. Състои се от две части, едната от които включва два осембитови блока CH и CL.
  • EDX - Необходими са данни за прецизни операции на адреса на паметта за входни и изходни функции. В допълнение, в този регистър можете да поставяте данни за пренасочване за използване в процедури и шаблони.
  • Регистрирай указатели

    За работа със стека в асемблер разработчиците имат два вида регистър. За достъп до тях се извършва операция за добавяне към индекса на върха на абстрактен тип стойности на битовете на определен тип данни, който е бил поставен в стека. Всички изчисления се извършват ръчно. Това спестява голямо количество данни и се предава на подпрограмата - процедури и масиви. Сред регистрите на указателите в асемблера се различават:
  • Регистърът ESP е показалец към горната част на стека. Винаги съдържа адреса на първия елемент, който е бил поставен в стека в кеш паметта на процесора. Ако е необходимо, тя може да бъде запълнена с други данни. Включва младши SP регистър, състоящ се от 16 бита.
  • Регистърът на базови указатели е блок от клетки на паметта, необходими за адресиране на данни,които се съдържат в стека. Това значително улеснява достъпа до всички данни и променливи. Включва младши клас BP.
  • Индексни регистри

    За разширяване на индексирането са необходими блокове индексни памет. Освен това те участват в работата на някои аритметични операции и обработват байтови низове - поредица от байтове, които съдържат произволни стойности. Асемблерът включва два регистъра, които отговарят за индексирането на ESI и EDI. Да ги опишем:
  • ESI (Source index) включва индекса на източника (мястото, където се събират данните) и се изисква за част от действията над байтови редове;
  • EDI (Индекс на местоназначението) се изисква за записване на резултатите от изчислението. Използва се и за част от стачката. Частично свързан с регистъра на сегментите от СЕ.
  • Сегментните регистри

    са първите блокове в паметта. Те се наричат ​​текущи сегменти. Софтуерът има право да разпространява повече от четири памет. Въпреки това, в същото време, не забравяйте да включите адреса на блоковете в клетката на паметта между сегментните регистри. Този вид блокове памет е строго специфичен, което прави невъзможно да се запълнят с отделен тип данни. Редът на блоковете на регистрите на паметта може да варира. Запаметяването на сегментните регистри се извършва в случаен ред в случайни места от паметта.
  • Кодът на CS регистъра в обичайната си форма съдържа адреса на началото на кодовия сегмент на софтуера (началото на представянето на машинния код). По този начин командите се изпълняват за сметка на командния указател IP.
  • Регистърът на данни съдържа адреса на данните, които се обработват от програматавреме за стартиране Прехвърлянето на данни се извършва за сметка на изместването, записано в регистъра на ЕПИ.
  • ​​
  • Сегментът Stack (ESS) е необходим за поддържане на началото на сегмента на абстрактен тип данни.
  • Допълнителният сегмент е допълнителен регистър, съдържащ празно пространство за запис на данни при някои действия над байтови редове. Може да съдържа информация, подобна на регистъра за данни.
  • Регистър на командните списъци

    Този тип принадлежи на екипа. С помощта на този индекс се извършва регистърът на асемблера в списъка. Включва данни за пристрастия за следващата команда спрямо предишната. Когато практическото използване на софтуера не се използва обаче, е необходимо да се види списъкът за изпълнение на кода. По този начин те проследяват грешки.

    Монтаж на регистър на регистъра

    Съответства на текущото състояние на CPU. Той се състои от 16 бита, от които само 9 могат да бъдат заети.Попълването на този блок памет се извършва след изпълнение на прохода или кода на грешката в резултат на предишната команда. В допълнение, част от битовете се използват от процесора и могат да се инициализират и изтриват, използвайки определена система от команди. Така се управлява командната система.

    Свързани публикации