Дж.Хиллбурн, П.Джулич Микро-ЭВМ и микропроцессоры (1979) (1092080), страница 18
Текст из файла (страница 18)
Указанные процедуры иллюстрирует рис. 4.22. Эдесь стек состоит из семи регистров. Если в стек загружается какое-либо слово, например Аа, то оно записывается: в верхнем регистре, а каждое из слов А1 — Аа перемещается в соседний нижний регистр. Если же Аа извлекается из стека, то каждое из слов А~ — Аа перемещается в соседний верхний регистр, Отметим, что нельзя извлечь А4 раньше Ам т. е.
автоматически реализуется отмеченный выше принцип. Стек обычно используется 1!8 Глава 4 Зпгругнп А гпеенечение Ае А г утерянп Рис. 4.23. Переполнение стека. в микропроцессорах для хранения адресов возврата при обращении к подпрограммам, а также для запоминания состояния внутренних регистров при обработке прерываний. В некоторых микопроцессорах стек предназначен для хранения адресов возврата 20). Стек можно организовать и в памяти [21), но в этом случае на обращение к нему затрачивается время, равное циклу памяти. Эта операция выполняется значительно быстрее, если в состав ЦП ввести специальный набор регистров. Важным параметром в данном случае является число регистров стека.
При попытке записать в стек большее количество слов, чем число его .регистров, первое слово будет утеряно (рис. 4.23). Если вовремя не обратить на это внимание, то может произойти ошибка, которую впоследствии трудно обнаружить 118]. В некоторых микропроцессорах при переполнении стека регистров соответствующие слова записываются в стек памяти.
Часто стек реализуется таким образом, что процесс его функционирования напоминаетработу с пачкой документов, когда каждый новый документ кладется сверху пачки. При такой организации стека необходим специальный регистр — указатель стека (УС)— для хранения адреса последнего по времени поступления элемента стека (рис. 4.24). Указательстека представляетсобой трехразрядный регистр,с двоичным представлением информации. Первоначально указатель стека содержит число 011 (3 в двоичной системе). Это означает, что последний элемент — «верхушка» стека— находится в регистре 8. При операции загрузки в регистр 4 записывается число Ав а содержимое указателя стека изменяется та.
ким образом, что он указывает на регистр 4. При операции извлечения из стека производятся обратные действия. Лркитектуро микро-ЭВМ П9 Стек Рнс. 4.24. Адресация элемента стека с использованием указателя стека. 6. Сверхоперативная память (регистры общего назначения). Во многих микро-ЭВМ ЦП располагает набором регистров для временного хранения адресов и данных. Количество этих регистров и возможность доступа к ним значительно отличаются для разных машин (гл. 7). Рекомендации по использованию этих регистров иногда приводятся в технической документации, что весьма ценно для пользователей. 7. Регистр команд (РК). Данный регистр содержит команду в процессе ее дешифрирования и выполнения.
Входные данные поступают в регистр из памяти по мере последовательной выборки команд. Обычно существует возможность записи данных в РК при помощи набора переключателей и кнопок на пульте управления ЭВМ. Как правило, этой возможностью пользуются для передачи управления в начало программы. 8. Регистр состояния. Регистр состояния скомпонован из одного или нескольких триггеров, называемых флажками, и используется для индикации переполнения при выполнении операций, нулевого содержимого аккумулятора, знака содержимого аккумулятора и переноса из аккумулятора.
Эта информация нужна для выполнения многих арифметических операций и часто используется при реализации условных переходов. Типичный вариант взаимосвязи таких регистров представлен на рис. 4.25. ее 20 Глава 4 Шина ааааа- йгйУа Рис. 4.25. Взаимосвязь регистров ЦП. В микропроцессоре на одном кристалле количество выводов ограниченно. Вследствие этого возникает необходимость в уменьшении количества шин, что достигается использованием шин в режиме разделения времени. Если объединить шину ввода-вывода с шиной данных памяти, то устройство ввода-вывода можно рассматривать как обычный элемент памяти ~22]. 'КОМАНДЫ Все операции, которые должна вьгполнять ЭВМ, следует представить в виде последовательности отдельных шагов. Производи.тельность ЭВМ определяется не степенью сложности шагов, а временем их выполнения.
Эти шаги называют командами. Содер.жание команд и их количество для разных ЭВМ изменяются в широких пределах, Команды должны быть представлены в двоичной системе, так как они хранятся в памяти. Теоретически программу можно написать, используя набор команд любой ЭВМ. Однако объем программы и время ее выполнения в значительной степени определяются используемым набором команд. лркитектура микро-ЭВМ 121 Регину В Лккумуимвир Уиеислтр В Аккумумвииу б Рнс. 4.26. Состояние регистра В и аккумулятора при выполнении операции И до выполнения операции (а) и после ее выполнения (б).
Функционально команды ЭВМ можно разбить на пять групп 1231: 1) пересылки данных; 2) управления; 3) обращения к подпрограммам; 4) операций и 5) ввода-вывода. Команды могут использовать данные из памяти, регистров ЦП либо просто управлять работой машины. В первом случае требуется дополнительный цикл обращения к памяти и поэтому выполнение команды за)тимает больше времени.
Рассмотрим функции команд каждой группы. 1. Команды пересылки данных. К данной группе относятся команды пересылки данных из одной ячейки памяти в другую, а также из регистра в память и обратно. Команды пересылки информации обозначают как МОЧЕ (ПЕРЕСЛАТЬ), ГОАР (ЗАГРУЗИТЬ), ВТОРОЕ (ЗАПИСАТЬ) или ЕХСНАЫОЕ (ОБМЕНЯТЬ). После пересылки данные могуть быть обработаны в АЛУ, которое выполняет операции АРР (СЛО)КЕНИЕ), З()ВТКАСТ (ВЫЧИТАНИЕ), АЫР (И), ОК(ИЛИ), ЕХСШЗ1УЕ-Ой (ИСКЛЮЧАЮЩЕЕ ИЛИ), СОМРАКЕ (СРАВНЕНИЕ). Рис, 4.26 поясняет выполнение операции И над содержимым регистра В и содержимым аккумулятора.
В некоторых 122 Глава 4 | а«с» «ас век вас'к вер'аво1 4сМ Счетчик номонд 'рр рр ~р 4Ь Рр р«р Рис, 4.27, Содержимое счетчика команд после выполнения команды ПРОПУ- СТИТЬ, ЕСЛИ ФЛАЖОК ПЕРЕНОСА УСТАНОВЛЕН В Е 2. Команды управления. Команды управления можно разделить на условные и безусловньае. Выполнение условной команды зависит от содержимого триггера состояния («Перенос», «Нуль», «Знак» и т.
д.). Обычный набор команд э1ой группы включает следующие команды: а) НАЬТ (ОСТАНОВ). По этой команде устройство управления приостанавливает выполнение программы. Для возобновления работы программы необходимо вмешательство извне. б) Д()МР (ПЕРЕХОД). По данной команде в счетчик команд заносится адрес команды, которую необходимо выполнить на следующем шаге. в) ЗК)Р (ПРОПУСТИТЬ).
Это условная команда. При наличии условия содержимое счетчика команд увеличивается таким образом, что следующая команда пропускается. Если же условия нет, то содержимое счетчика команд увеличивается на единицу и выполняется следующая по порядку команда. На рис. 4.27 показано выполнение этой команды в зависимости от состояния триггера переноса.
При флажке атереноса, .сброшенном в состояние О, счетчик команд содержит команду с адресом 2А36|в. При флажке переноса, установленном в 1, осуществляется переход по адресу 2А37мь а команда с адресом 2А36~в пропускается. ЭВМ при выполнении операций сложения и вычитания используется флажок переноса, что увеличивает точность вычислений. В ряде вычислительных машин обеспечивается работа со стеком.
Использование операций Р1)ЗН (ЗАГРУЗКА) и РОР (ИЗВЛЕЧЕНИЕ) позволяет восстанавливать состояние ЭВМ после обработки прерываний. Арлитектура микро-ЭВМ 123 ск Стоек Рнс. 4.28. Содержимое счетчика команд и стека при выполнении команды ПЕРЕХОД к подпрограмме по адресу ООВЕ (шестнадцатеричное число). 3.
Команды обращения к подпрограммам. Эти команды могут быть условными и безусловными. Ниже рассмотрены некоторые типичные команды этой группы: а) САЬЬ (ПЕРЕХОД к подпрограмме). По этой команде содержимое счетчика команд увеличивается на единицу и запоминается в стеке. Данный адрес есть адрес возврата после завершения подпрограммы. Далее в счетчик команд заносится адрес подпрограммы и начинается ее выполнение. В приведенном примере (рис. 4.28) программа выполняет команду обращения к подпрограмме, расположенную по адресу 2600иь а в стеке содержится адрес возврата в основную программу (1ААОм). Затем происходит обращение к подпрограмме, начинающейся с адреса ООВЕиь После выполнения команды перехода содержимое счетчика команд становится равным 2601м и записывается в .стек адреса возврата, Выполнение условной команды САЬЬ зависит от состояния соответствующего флажка условия.
б) КЕТ()КЫ (ВОЗВРАТ в основную программу). По данной команде из стека извлекается адрес возврата. Этот адрес загружается в счетчик команд и возобновляются вычисления по основной программе. Выполнение команды КЕТ()КХ показано на рис. 4.29. Перед началом выполнения команды в 'стеке содержится адрес возврата, получение которого было пояснено на рис. 4.28. По команде КЕТЩ)т) содержимое первого регистра стека 2601ге поступает в счетчик команд и машина начинает выполнять команду, расположенную по адресу 2601~а.
в) КЕЗТАКТ (ЗАПУСТИТЬ ПОВТОРНО). Команда КЕЗТАКТ вЂ” это особый вариант команды САЬЬ; она осуществляет переход по одному из фиксированных адресов. Данная команда в некоторых случаях используется вместо команды САЕТ, по- ' 124 Глава 4 ск атис. 4.29.