Структура однокристального мп, состав и назначение элементов

      Комментарии к записи Структура однокристального мп, состав и назначение элементов отключены

Структура однокристального МП приведена на рис. 1.5. Доступные блоки МП (выделены на рисунке толстой рамкой): регистр-аккумулятор, счетчик команд, блок регистров B, C, D, E, регистр признаков. Недоступные блоки МП:

регистр адреса,схема управления,

арифметико-логическое устройство, блок регистров временного хранения данных, регистр команд.

При работе с микропроцессором программисту необходимо иметь информацию о числе и назначении всех регисторов, специальных указателей, регистра флагов, системы команд. Число и назначение регистров, флагов и команд программист, как правило, изменить не может. Он может изменить только содержимое регистров и использовать команды в любой нужной ему комбинации. Как известно, под регистром подразумевается специальное запоминающее устройство (ЗУ), состоящее из элементов (триггеров) с двумя устойчивыми состояниями. Число элементов 8 соответствует одному байту. Существуют 8-, 16-, 32-, 64- и т. д. разрядные регистры. Все регистры разбиты на группы и различаются функциональным назначением.

Рис. 1.5. Структура однокристального МП

Основными блоками МП являются: блок регистров общего назначения (РОН) со схемой выборки регистров; регистр комад с дешифратором команд и формирователем машинных циклов; арифметико-логическое устройство с регистром-аккумулятором, выполняющим арифметические и логические операции; регистры временного хранения данных W и Z; флаговый регистр; устройство управления и синхронизации.

Регистры общего назначения используются для хранения данных и промежуточных результатов вычислений, выполняемых с помощью арифметико-логического устройства. Они позволяют адресоваться как ко всему регистру, так и к отдельным байтам или словам.

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

Регистр команд – регистр, в котором хранится код выполняемой команды. Этот регистр, как указывалось выше, является недоступным регистром. Это означает, что не существует команды, которая могла бы изменить его содержимое. После выполнения очередной команды в регистр автоматически заносится код следующей команды из ячейки оперативной памяти, адрес которой находится в счетчике команд.

Счетчик команд – регистр (PC – Program Counter), хранящий адрес следующей команды, которая должна быть выполнена вслед за предыдущей. Счетчик команд автоматически получает приращение хранимого в нем адреса в зависимости от того, какую по длительности команду микропроцессор считывает из памяти, указывая всегда на первый байт следующей команды. На содержимое регистра можно повлиять только с помощью команд, изменяющих последовательное выполнение программы (например, команд перехода или вызова подпрограмм).

Указатель стека – регистр (SP – Stack Pointer), хранящий адрес очередной ячейки стека. Стеком называется особым образом организованный участок памяти, выделяемый программистом для временного хранения содержимого внутренних регистров МП, со специальным режимом доступа. Эта область оперативной памяти необходима в том случае, когда нужно прекратить выполнение реализуемой последовательности команд и вернуться к ней позже. Например, для немедленного выполнения специальной подпрограммы или при прерывании программы данные от МП поступают в верхнюю часть стековой памяти. Содержимое указателя стека уменьшается на единицу (2, 4, в зависимости от формата заносимых данных), чтобы всегда указывать на адрес последней заполненной ячейки стека (дно свободного пространства стека). Когда же данные выбираются (считываются) из стека, содержимое указателя стека увеличивается с каждым выбранным байтом (словом, двойным словом). Операции со стеком называются стековыми. С их помощью легко организуются многоуровневые (вложенные) прерывания: аппаратные и программные.

Флаговый регистр – регистр, в простейшем случае содержащий 5 двоичных разрядов, называемых флагами по числу хранимых в нем специальных признаков результатов некоторых операций. Иногда его называют регистром признаков, или регистром флагов. Значение флага указывает на результат выполнения операций. Например, в микропроцессоре I8080 флаговый регистр содержит 5 флагов (рис. 1.6):

S Z AC P C

S – знак (Sign)

Z – нуль (Zero)

AC – вспомогательный перенос (Auxiliary Carry) P – четность (Parity)

C – перенос (Carry)

Рис. 1.6. Регистр флагов МП I8080

Флаги всегда устанавливаются или сбрасываются автоматически после выполнения очередной команды, влияющей на флаги, в зависимости от результата операции. Флаг считается установленным, если флаговый разряд принимает значение 1, и сброшенным, если значение разряда 0. Состояние флагов используется в командах условного перехода. Результаты выполнения арифметических и логических операций над содержимым аккумулятора и регистров общего назначения или содержимым ячеек памяти оказывают влияние на флаги следующим образом.

Флаг нуля устанавливается в состояние 1, если после выполнения какой-либо команды получен нулевой результат, и сбрасывается в 0 в случае ненулевого результата.

Флаг переноса устанавливается в 1, если в результате операций сложения и сдвига появляется единица переноса из старшего разряда после выполнения операций вычитания или сравнения, в противном случае флаг сбрасывается в 0.

Флаг знака устанавливается в 1, если в результате выполнения операций появляется логическая единица в старшем разряде байта данных (указание на отрицательный результат), и сбрасывается в 0 в случае нулевого значения старшего разряда (указание на положительный результат).

Флаг четности устанавливается в 1, если после выполнения операций сумма единиц в байте данных, подсчитываемых с помощью операции сложения по модулю 2 (значение суммы по модулю 2 равно 0), и сбрасывается в 0 в противном случае (число единиц нечетное).

Флаг дополнительного переноса устанавливается в 1, если в результате выполнения команды появляется сигнал переноса из третьего разряда в четвертый в байте данных результата. Если такого переноса нет, то флаг дополнительного переноса сбрасывается в 0. Сигнал этого флага используется во многих схемах вычислений, однако он особенно необходим для сложения чисел в двоично-десятичной форме.

Статьи к прочтению:

«Чайка». Фильм Фонда борьбы с коррупцией.


Похожие статьи: