Обобщенная архитектура микропроцессора представлена на рис. 1
Рис. 1.  
Устройство управления управляет работой микропроцессора, обменом с внешними устройствами и обработкой информации. В состав устройства управления входит уже известный нам дешифратор команд.
Аккумулятор предназначен для временного хранения операндов или результатов операции. Если один из операндов хранится в аккумуляторе, операция выполняется максимально быстро. Аккумулятор представляет собой регистр, разрядность которого совпадает с разрядностью микропроцессора.
Регистры общего назначения — набор регистров, предназначенных для временного хранения операндов, результатов операций или других данных. Вообще операнды, используемые в команде, могут храниться либо в одном из внутренних регистров микропроцессора, либо в запоминающем устройстве. Естественно, обращение к операндам, находящимся в ЗУ занимает больше времени. Поэтому часто используемые данные, результаты операций, используемые как операнды для последующих операций, хранятся во внутренних регистрах микропроцессора — аккумуляторе или регистрах общего назначения. Количество регистров общего назначение различно у разных МП.
Способ задания местоположения операндов в команде называется методом адресации. Существуют следующие основные методы адресации:
Регистр признаков (регистр "флагов") — регистр, каждый бит которого ("флаг") имеет собственное значение и содержит информацию об определенном событии, произошедшем или не произошедшем в процессе выполнения предыдущей команды. Наиболее важными "флагами" являются "флаг" нуля (ZF) и "флаг" знака (NF). "Флаг" нуля равен единице, если в результате предыдущей команды был получен ноль (нулевой результат). "Флаг" знака равен единице, если в результате выполнения предыдущей команды было получено отрицательное число. Эти "флаги" могут быть использованы для организации сравнения чисел. Например, необходимо проверить условие . Для этого достаточно провести вычитание и проанализировать "флаг" нуля: если ZF=1, значит результат вычитания был нулевым и величины и равны. Если ZF=0 — не равны. Аналогично, если после операции вычитания "флаг" знака установился в 1, это говорит о том, что был получен отрицательный результат, то есть значение больше значения .
Счетчик команд хранит адрес следующей выполняемой команды. После загрузки очередной команды содержимое счетчика команд увеличивается таким образом, чтобы он опять указывал на следующую команду. При этом предполагается, что в ЗУ команды программы лежат последовательно друг за другом. Если же порядок выполнения команд изменяется (например, при вызове подпрограммы), адрес очередной команды заносится в счетчик команд с помощью специальной команды ветвления.
При выполнении программы часто возникает такая специфическая ситуация, как вызов подпрограммы. При переходе к подпрограмме в счетчик команд записывается новое значение, соответствующее адресу первой команды подпрограммы. После окончания выполнения подпрограммы, должно быть продолжено выполнение основной программы. Таким образом, перед вызовом подпрограммы необходимо запомнить адрес следующей команды основной программы ("адрес возврата"), для того, чтобы загрузить его в счетчик команд ("восстановить счетчик команд") по окончании выполнения подпрограммы. При этом нужно учитывать, что вызовы подпрограмм могут быть "вложенными" (из первой вызывается вторая, из второй третья и так далее). Для сохранения адресов возвратов из подпрограмм используется специально организованное запоминающее устройство, называемой стеком.
Стек организован по принципу "последним вошел — первым вышел". Схема работы стека при помещении в него информации представлена на рис. 2.
Рис. 2.  
Стек представляет собой набор ячеек (регистров), но запись нового числа () всегда происходит только в самую верхнюю ячейку, называемую "вершиной" стека. При записи следующего числа (), первое "продвигается" дальше, вглубь стека, вершина стека освобождается и в нее записывается второе число. Запись третьего () и последующих чисел происходит аналогично.
Извлечение данных из стека происходит в обратном порядке (рис. 3). Извлечено может быть только число, находящееся в вершине стека. При его извлечении, находящиеся в стеке данные "продвигаются" вверх и следующее число занимает место в вершине стека и может быть извлечено из него.
Рис. 3.  
Стек может быть организован аппаратно или программно-аппаратно.
Аппаратный стек — это специальным образом организованная группа регистров. При помещении данных в вершину стека, его содержимое физически "продвигается" путем перезаписи информации между регистрами. Работа аппаратного стека контролируется специальным блоком управления. Недостаток такого стека – аппаратная сложность и ограниченность объема данных, которые могут быть сохранены.
В случае программно-аппаратного стека в качестве стека используется специально выделенная область основного запоминающего устройства. Одна из ячеек этой области является вершиной стека и ее адрес хранится в специальном регистре микропроцессора, называемом "указатель стека". Именно такой вариант является наиболее распространенным и представлен на рис. 1 При записи данных в стек, уже находящиеся там данные никуда не перемещаются, а "перемещается" вершина стека (путем изменения значения указателя стека), (см. рис. 4). Запись данных всегда происходит в ячейку, являющуюся в данный момент вершиной стека, адрес которой хранится в указателе стека.
Рис. 4.  
При извлечении данных из стека указатель перемещается в обратном направлении (рис. 5). Чтение данных всегда происходит из ячейки, являющейся вершиной стека.
Рис. 5.  
Недостаток программно-аппаратного стека — большее, чем в случае просто аппаратного стека, время, необходимое для записи/извлечения данных. Объясняется это необходимостью обращения к основному ЗУ при каждой операции со стеком. Достоинства — простота аппаратной реализации и отсутствие жестких ограничений на размер стека (фактически его размер ограничен только размером основного ЗУ).
Использование стека для хранения адресов возвратов из подпрограмм позволяет получать адреса возврата в порядке, обратном их помещению. И таким образом обеспечить корректный возврат из подпрограмм даже в случае вложенных вызовов.
В большинстве современных процессоров основной стек, доступный программам, имеет программно-аппаратную реализацию. Соответственно, МП имеет в своем составе регистр-указатель стека. Аппаратный стек применяется в специализированных процессорах
Таким образом, мы рассмотрели обобщенную архитектуру микропроцессора, включающую в себя АЛУ, УУ с ДШК, аккумулятор, РОН, счетчик команд, регистр флагов и указатель стека.