Жалпы олданысты регистрлер

Жалпылама регистрлер программада арифметикалы жне логикалы амалдарды операндтарын, адрестерді компоненттерін сатауа арналан. Бл топа келесі сегіз регистр жатады:

  Мліметтер регистрлері  
ЕAX   AH AL Аккумулятор
ЕBX   BH BL Базалы регистр
ЕCX   CH CL Есептегіш
ЕDX   DH DL Мліметтер регистрі

 

  Индекстік регистрлер  
ЕSI   SI Жібер-ні индексі
ЕDI   DI абылдаыш индексі
ЕBP   BP База крсеткіші
ЕSP   SP Стек крсеткіші

р регистрге 32 разрядты мн жазуа болады. Сонымен атар регистрді р байтына жеке атынауа болатын ммкіндік бар. Мысалы, ЕAX регитстрі 32 разрядты, оны кіші жартысына атынау шін АХ деп аламыз. АХ -ті кіші байтына АL, ал лкен байты АН деп атынауа болады.

Мліметтер регистрлерін кез келген арифметикалы логикалы жне т.б. машиналы амалдарда олдануа болады. Командаларда екіеселі сз лшемді мліметермен амалдар орындаанда EAX, EBX, ECX, EDX, сз лшемді мліметермен амалдар орындаанда AX, BX, CX, DX, ал байт лшемді мліметермен амалдар орындаанда АН, АL, ВН, ВL, СН, СL, DН, DL регистрлері олданылады.

Сонымен атар, бл регистрлерді р айсысы арнайы бір жмыстара да бекітілген: кейбір командалар здеріні операндтарыны белгілі бір регистрлерде орналасыуын талап етеді. Мысалы, блу амалы шін бірінші операнд (блінгіш) AX регистрінде, немесе ЕAX, немесе ЕАХ жне ЕDX (операндты лшеміне байланысты) регистрлерінде орналасуы ажет, ал ЕСХ/СХ регистрі циклды басару командаларында есептегіш ретінде олданылады.

Регистрлерді оларды е басты олданыстарына байланысты былайша жіктеуге болады:

· ЕAX/AX/AH/AL (аккумулятор) регистрі aрифметикалы амалдарда олданылады.

· EBX/BX/BH/BL (базалы регистр) регистрінде процедураларды немесе айнымалыларды адрестері саталады. Бл масатта ЕSI/SI, EDI/DI, EBP/BP регистрлері де пайдаланылады.

· ECX/CX/CH/CL (есептегіш) регистрі циклды командаларда айталану санын есепке алу жмысын атарады.

· EDX/DX/DH/DL (мліметтер регистрі) регистрі кбейту амалын орындаанда кбейтіндіні, ал блу амалын орындаанда блінгішті бір блігін жазу шін олданылады.

Крсеткіштер регистрі мліметтер мен командаларды адрестерін есептеуде олданылатын «ыысу» шамасын сатайды. «Ыысу»- айнымалыны, белгіні немесе команданы базалы сегментпен арасындаы ашытыты крсетеді. Олара келесі екі регистр жатады:

· EBP/BP (база крсеткіші) регистрі стек сегментіні тбесінен ыысуды сатайды. Бл регистр ішкі программаларда, шаырушы программаны стекке орналастыратын, айнымалыларды адрестерін анытау шін олданылады.

· ESP/SP (стек крсеткіші). Бл регистр стек тбесіні ыысуынан трады. EBP/BP, ESP/SP регистрлері арылы стек тбесіні толы адресі аныталады.

Келесі екі регистр индекстік регистрлерге жатады. Индекстік регистрлерді пайдалану жолдармен, массивтермен жне баса да жйелі рылымдармен жмыс жасау жылдамдыын арттырады:

· ESI/SI (жіберушіні индексі). Тізбектік амалдарда жіберуші-тізбектегі кезекті элементті индексін сатайды.

· EDI/DI (абылдаышты индексі). Тізбектік амалдарда абылдаыш-тізбектегі кезекті элементті индексін сатайды.

Регистрлерді машиналы командаларда олданылу ерекшеліктерін білу, ажет болан жадайда, программа коды саталатын жадты ышамды пайдалануа жне алгоритмді тиімдірек жолмен программалауа ммкіндік береді.

Сегменттік регистрлер

Intel процессоры программаны сегменттік йымдастырылуын олдайды. Ол дегеніміз кез келген программа ш сегменттен - кодтар, мліметтер жне стек сегменттерінен - трады. Intel тобы процессорларыны архетектурусында логикасы бойынша машиналы командалар р команданы тадаанда программаны мліметтеріне немесе стекке атынауда мліметтерді натылы бір сегменттік регистрден пайдаланылады. Процессорды жмыс режиміне байланысты оларды рамы бойынша сйкес сегменттер басталатын жадты адресі аныталады. Intel тобы процессорыны программалы моделінде, сегментті трт типіне атынауа арналан, алты сегменттік регистр бар:

· Командалар сегменті программа кодынан трады. Бл сегментке атынау шін CS–сегменттік регистрі олданылады. Онда процессор атынауа арналан машиналы командалар орналасатын сегментті адресі жазылады.

· Мтіметтер сегменті программаны дейтін мліметтерінен трады. Бл сегментке атынау шін DS –сегменттік регистрі олданылады. Мнда кезектегі программаны мліметтері саталатын сегментті адресі жазылады.

· Стек сегменті. Бл сегментке атынау шін SS –сегменттік регистрі олданылады.

· осымша мліметтер сегменті. Егер программаа бір мліметтер сегменті жеткіліксіз болса, онда программаны ш осымша мліметтер сегментін пайдалану ммкіншілігі бар. Біра негізгі мліметтер сегментіне араанда ол регистрлерді пайдалананда оларды адрестері, арнайы сегменттерді анытау префикстеріні кмегімен, айын крсетілуі керек. осымша мліметтер сегменттеріні адрестері ES, GS, FS осымша мтіметтер регистрлерінде жазылады.

Бл регистрлер ешандай арифметикалы, логикалы жне т.б. амалдарда олданылмайды. Олара тек мліметтерді жазуа жне олардан мліметтерді оуа ана болады, онда да белгілі бір шектеулер бар.