Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Основные типы регистров и их функции в ЭВМ



Регистры — быстродействующие ячейки памяти различной длины: регистр 1 имеет разрядность двойного слова, а регистр 2 — разрядность слова. При выпол­нении операций в регистр 1 помещается первое число, участвующее в операции, а по завершении операции — результат; в регистр 2 — второе число, участвующее в операции (по завершению операции информация в нем не изменяется). Ре­гистр 1 может и принимать информацию с кодовых шин данных и выдавать ин­формацию на них; регистр 2 только получает информацию с этих шин.

Все регистры можно разделить на 4 группы:

универсальные регистры: АХ, ВХ, СХ, DX;

сегментные регистры: CS, DS, SS, ES;

регистры смещения: IP, SP, BP, SI, DI;

регистр флагов: FL.

Универсальные регистры

Регистры АХ, ВХ, СХ и DX являются универсальными (их часто называют ре­гистрами общего назначения — РОН); каждый из них может использоваться для временного хранения любых данных, при этом позволено работать с каждым регистром целиком, а можно отдельно и с каждой его половиной (регистры АН, ВН, СН, DH — старшие (High) байты, а регистры AL, BL, CL, DL — младшие (Low) байты соответствующих 2-байтовых регистров). Но каждый из универ­сальных регистров может использоваться и как специальный при выполнении некоторых конкретных команд программы. В частности:

-регистр АХ — регистр-аккумулятор, через его порты осуществляется ввод-вывод данных в МП, а при выполнении операций умножения и деления АХ используется для хранения первого числа, участвующего в операции (множи­мого, делимого), и результата операции (произведения, частного) после ее за­вершения;

-регистр ВХ часто используется для хранения адреса базы в сегменте данных и начального адреса поля памяти при работе с массивами;

-регистр СХ — регистр-счетчик, используется как счетчик числа повторений при циклических операциях;

-регистр DX используется как расширение регистра-аккумулятора при работе с 32-разрядными числами и при выполнении операций умножения и деления, используется для хранения номера порта при операциях ввода-вывода и т. д.

Сегментные регистры

Регистры сегментной адресации CS, DS, SS, ES используются для хранения на­чальных адресов полей памяти (сегментов), отведенных в программах для хра­нения:

-команд программы (сегмент кода — CS);

-данных (сегмент данных — DS);

-стековой области памяти (сегмент стека — SS);

-дополнительной области памяти данных при межсегментных пересылках (рас­ширенный сегмент — ES), поскольку размер сегмента в реальном режиме рабо­ты МП ограничен величиной 64 Кбайт.

Регистры смещений

Регистры смещений (внутрисегментной адресации) IP, SP, BP, SI, DI предна­значены для хранения относительных адресов ячеек памяти внутри сегментов (смещений относительно начала сегментов):

-регистр IP (Instruction Pointer) хранит смещение адреса текущей команды программы;

-регистр SP (Stack Pointer) — смещение вершины стека (текущего адреса стека);

-регистр BP (Base Pointer) — смещение начального адреса поля памяти, непо­средственно отведенного под стек;

О регистры SI, DI (Source Index и Destination Index соответственно) предназна­чены для хранения адресов индекса источника и приемника данных при опе­рациях над строками и им подобных.

Регистр флагов

Регистр флагов FL содержит условные одноразрядные признаки-маски, или фла­ги, управляющие прохождением программы в ПК; флаги работают независимо друг от друга, и лишь для удобства они помещены в единый регистр. Всего в реги­стре содержится 9 флагов: 6 из них статусные, отражают результаты операций, выполненных в компьютере (их значения используются, например, при выпол­нении команд условной передачи управления — команд ветвления программы), а 3 других — управляющие, непосредственно определяют режим исполнения программы.

Статусные флаги:

-CF (Carry Flag) — флаг переноса. Содержит значение «переносов» (0 или 1) из старшего разряда при арифметических операциях и некоторых операциях сдвига и циклического сдвига;

-PF (Parity Flag) — флаг четности. Проверяет младшие восемь битов резуль­татов операций над данными. Нечетное число единичных битов приводит к установке этого флага в 0, а четное — в 1;

-AF (Auxiliary Carry Flag) — флаг логического переноса в двоично-десятич­ной арифметике. Вспомогательный флаг переноса устанавливается в 1, если арифметическая операция приводит к переносу или заему четвертого справа бита однобайтового операнда. Этот флаг используется при арифметических 'операциях над двоично-десятичными кодами и кодами ASCII;

-ZF (Zero Flag) — флаг нуля. Устанавливается в 1, если результат операции равен нулю; если результат не равен нулю, ZF обнуляется;

-SF (Sign Flag) — флаг знака. Устанавливается в соответствии со знаком ре­зультата после арифметических операций: положительный результат устанав­ливает флаг в 0, отрицательный — в 1;

-OF (Overflow Flag) — флаг переполнения. Устанавливается в 1 при арифме­тическом переполнении: если возник перенос в знаковый разряд при выпол­нении знаковых арифметических операций, если частное от деления слишком велико и переполняет регистр результата и т. д.

Управляющие флаги:

-TF (Trap Flag) — флаг системного прерывания (трассировки). Единичное со­стояние этого флага переводит процессор в режим пошагового выполнения программы (режим трассировки);

-IF (Interrupt Flag) — флаг прерываний. При нулевом состоянии этого флага прерывания запрещены, при единичном — разрешены;

-DF (Direction Flag) — флаг направления. Используется в строковых операци­ях для задания направления обработки данных. При нулевом состоянии фла­га команда увеличивает содержимое регистров SI и DI на единицу, обуслов­ливая обработку строки «слева направо»; при единичном — «справа налево».





Дата публикования: 2015-02-18; Прочитано: 6774 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...