Простейшая микро-ЭВМ

         

ФУНКЦИОНАЛЬНАЯ СХЕМА МИКРОПРОЦЕССОРА


При работе с ПМ-ЭВМ пользова­телю необходимо иметь информацию о числе и назначении всех регистров, специальных указателей, называемых флагами, и о системе команд МП. Число, назначение регистров, флагов и команд пользователь изменить не может. Он может изменять лишь содержимое регистров и использовать команды в любой нужной ему комбинации.

Как уже говорилось, под регистром подразумевается спе­циальное запоминающее устройство, состоящее из элементов (триггеров) с двумя устойчивыми состояниями. Число элемен­тов (восемь) соответствует одному байту. Большинство ре­гистров микропроцессора 8-разрядные и лишь некоторые 16-разрядные. Все регистры разбиты на группы и отличаются различным функциональным назначением.

Основными блоками МП (рис. 4.4) являются: блок регист­ров общего назначения со схемой выборки регистров, регистр команд с дешифратором команд и формирователем машинных циклов, арифметическо-логическое устройство (АЛУ) с ре­гистром А (аккумулятором), выполняющее арифметические и логические операции, регистр временного хранения данных W и Z (РВХД), флаговый регистр, устройство управления и син­хронизации, буферы шины данных (БШД) и адреса (БША), буфер аккумулятора (БА), схема приращения и уменьшения (СПИУ).

Рис. 4.4. Схема ЦПЭ на базе микропроцессора КР580ИК80А:

СГ - сигналы генератора тактовых импульсов; СС — сигнапы синхронизации

Доступными программисту являются следующие регистры: шесть 8-разрядных регистров, адресуемых по одному или пара­ми (регистры В, С, D, E, H, L); один 8-разрядный регистр А, называемый аккумулятором; один 16-разрядный регистр, называемый указателем стека; один 16-разрядный регистр, на­зываемый счетчиком команд, или программным счетчиком.

В некоторых специальных случаях могут быть доступными данные следующих двух регистров: регистра команд (8-разряд­ного) ; флагового регистра (5-разрядного).

Программно недоступными пользователю являются регист­ры W и Z. Они используются для временного хранения данных при выполнении команд микропроцессором.


Регистры общего назначения. Эти регистры раз­мерностью в один байт обозначаются В, С, D, E, H, L. Они ис­пользуются для хранения данных и промежуточных результатов вычислений, выполняемых с помощью арифметическо-логиче-ского устройства. При обработке 16-разрядных слов возможно обращение к парам регистров (В, С); (D, E); (H, L).

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

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



Счетчик команд — двухбайтовый (16-разрядный) ре­гистр, обозначаемый PC, или программный счетчик. Этот регистр хранит адрес следующей команды, которая должна быть выполнена вслед за предыдущей. Счетчик команд автоматически получает приращение хранимого в нем адреса в зависимости от того, какую по длительности команду (в один, два или три бай­та) микропроцессор считывает из памяти, указывая всегда на 1-й байт следующей команды. На содержимое этого регистра пользователь может повлиять только с помощью команд, изме­няющих последовательное выполнение программы (например, команд безусловного перехода), а также с помощью некоторых специальных команд.

Указатель стека-двухбайтовый (16-разрядный) ре­гистр, обозначаемый SP. Этот регистр хранит адрес очередной ячейки стека. Стеком называется особым образом организован­ный участок оперативной памяти, выделяемый программистом для временного хранения содержимого внутренних регистров МП со специальным режимом доступа.


Эта область оперативной памяти необходима в том случае, когда нужно прекратить вы­полнение реализуемой последовательности команд и вернуться к ней позже, например для немедленного выполнения специаль­ной подпрограммы или в результате прерывания программы. Данные от МП поступают в верхнюю часть стековой памяти, и при этом содержимое указателя стека уменьшается на едини­цу, чтобы всегда указывать на адрес последней заполненной ячейки стека (дно свободного пространства стека). Когда же данные выбираются (считываются) из стека, содержимое ука­зателя стека увеличивается на единицу с каждым выбранным байтом. Эти операции со стеком называются стековыми. С их помощью легко организуются многоуровневые (вложенные) прерывания и программы обращения к подпрограммам из подпрограмм (к вложенным подпрограммам).

Флаговый регистр- регистр, содержащий 5 двоич­ных разрядов, называемых флагами, по числу хранимых в нем специальных признаков результатов некоторых операций. Иногда он называется регистром признаков или флаговым ре­гистром битов условий. Значение флага указывает на резуль­тат выполнения какой-либо операции. Микропроцессор КР580ИК80А содержит флаговый регистр, состоящий из сле­дующих флагов: флага нуля (Z - zero), флага переноса (С -carry), флага знака (S - sign), флага четности (Р -parity), флага дополнительного переноса (АС - auxiliary carry). Флаги всегда устанавливаются или сбрасываются автоматически после вы­полнения очередной команды, влияющей на флаги, в зависи­мости от результата операции. При этом флаг считается уста­новленным, если флаговый разряд принимает значение 1, и сброшенным, если значение разряда 0. Состояния флагов использу­ются в командах условного перехода. Результаты выполнения арифметических и логических операций над содержимым акку­мулятора, регистров общего назначения или содержимым ячеек памяти оказывают влияние на флаги следующим образом.

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



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

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

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

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

Перейдем теперь к рассмотрению того, как микропроцессор выполняет команды.



Содержание раздела