Флаговый регистр или регистр признаков




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

Запоминание результатов упомянутых проверок позволяет выполнять программы, содержащие ветвления программы, вызовы подпрограммы и возвраты из подпрограммы, содержащие переходы, т.е. позволяет осуществлять нарушения естесственной последовательности выполнения команд.

При наличии в программе перехода по заданному признаку - выполнение команд начинается с некоторой новой области памяти, т.е. счетчик команд загружается новым числом, в случае условного перехода такое действие имеет место, если результаты определенных проверок совпадают с ожидаемыми значениями. Указанные результаты находятся в РЕГИСТРЕ СОСТОЯНИЯ: именно регистр состояния предоставляет программисту возможность организовать работу МП так, чтобы при определенных условиях менялся порядок выполнения команд.

Рассмотрим некоторые наиболее часто используемые разряды регистра состояния:

1. Знаковый (SIGHN –знак) -принимает единичное значение, когда старший значащий бит содержимого регистра, предназначенного для записи результата операции, становится равным 1.

При выполнении арифметических операций с числами в дополнительном коде 1 в

старшем значащем разряде показывает, что в регистре находится отрицательное число.

 

2.Нулевой результат (ZERO-нуль).

Разряд принимает единичное значение, если после окончания операции во всех разрядах регистра результата обнаружены 00.

 

3.Перенос/заем-(Carry –перенос).

Данный разряд указывает, что последняя выполненная операция сопровождалась переносом или заемом (отрицательным переносом). Значение разряда переноса устанавливается равным 1, если в результате сложения двух двоичных чисел имеет место перенос из 8-го старшего разряда переноса. Отрицательный перенос (заем) фиксируется в этом разряде при вычитании большего числа из меньшего.

Многие МП располагают дополнительными разрядами состояний: четности (паритета) или нечетности результата (PARITY – четность), дополнительного переноса (additional carry) и др.

Таким образом, каждый флаг представляет собой однобитный регистр. Считается, что флаг установлен, если бит равен логической единицы, и флаг сброшен, если бит равен логическому нулю: состояния флагов можно проверить, набрав адрес ячейки памяти 83ЕА.

S Z X P X AC X CY

S-знак (SIGN).Z- нуль (zero), Р-четность (Parity), AC-дополнительный перенос, CY-перенос Carry.

Z устанавливается в 1, если в аккумуляторе 0.

СУ устанавливается в 1,если есть перенос из 8-го разряда в 9-й.

АС устанавливается в 1,если в есть перенос из 3 в 4.

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

 

Регистр адреса памяти.

При каждом обращении к памяти микро-ЭВМ РЕГИСТР АДРЕСА ПАМЯТИ указывает адрес ячейки памяти, которая подлежит использованию МП. Выход этого регистра называется адресной шиной и используется для выбора области памяти или порта ввода-вывода. В течение подцикла выборки команды из памяти регистр адреса памяти и счетчик команд имеют одинаковое содержимое, т.е. регистр адреса памяти указывает местоположение команды, извлекаемой из памяти. После декодирования команды счетчик команд получает приращение в отличие от регистра адреса памяти, который приращения не получает.

Счетчики МП

Счетчик команд, предназначен для хранения адреса текущей команды.

Имеет вход от любого устройства через шину данных и от счетчика команд.

Счетчик команд - это один из наиболее важных блоков МП, выполняющих специальные функции. Для конкретного выполнения поставленного алгоритма команды должны поступать в строго определенном порядке. На счетчике команд лежит ответственность следить за тем, какая команда выполняется, а какая подлежит выполнению следующей.

Счетчик команд соединен с внутренней шиной данных МП. Теоретически этот счетчик может получать данные об адресах программы из любого блока МП, подключенного к внутренней шине. Однако на практике данные об адресах обычно поступают в счетчик команд из памяти микро-ЭВМ. Когда МП начинает работать, то по команде начальной установки в счетчик команд загружается начальный адрес области памяти, заданный проектировщиком МП. Перед пуском программы необходимо поместить начальный адрес программы в область памяти, указанную проектировщиком.(например, для «Микролаб» начальный адрес- в область 8000-83С6). Когда программа начинает выполняться, первым значением содержимого счетчика команд является этот, заранее определенный адрес (например, 8000 в данном случае) памяти, содержащей первую команду программы. Этот адрес первой команды программы посылается из счетчика команд в регистр адреса памяти, после чего содержимое обоих счетчиков становится одинаковым.(назначение регистра адреса памяти описывается в дальнейшем).

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

После извлечения команды из памяти МП автоматически дает приращение на 1 содержимому счетчика команд. Это приращение счетчик команд получает раз в тот момент, когда МП начинает выполнять команду, только что извлеченную из памяти. Следовательно, начиная с этого момента, счетчик команд «указывает», какой будет адрес следующего обращения к памяти, т.е. следующей команды на протяжении всего времени выполнения текущей команды.

Так как все команды выполняются последовательно, счетчик команд считает прямым счетом.

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

 

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

Выполнение программы начинается с этого адреса. Счетчик команд передает адрес в регистр команды.

Содержание счетчика программного и счетчика команд одинаково до тех пор, пока код команды в регистре команд не расшифрован.

Как только это произошло, УУиС выдает сигнал на приращение счетчика команд.

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

 

Указатель Стека.

Стек – специальная область ОЗУ, в которую временно перемещается содержимое внутренних регистров МП на время отработки программы прерывания. Стек представляет собой память последовательного типа. Содержимое ячеек накидывается как листы бумаги. МП перегружает все регистры в стек, последним в стек перегружается содержимое счетчика команд.

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

Указатель стека - специализированный 16-разрядный регистр, содержимым которого всегда является адрес. Этот адрес принадлежит особой группе ячеек памяти данных ОЗУ, которая называется СТЕКОМ.

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

Специальный регистр- указатель стека необходим для хранения адреса последнего по времени поступления элемента стека. Указатель СТЕКА загружается старше первой ячейки памяти стэка.2209 Н. данные записываются в стек или считываются из него по определенным микропрограммам.

Стек функционирует как память с последовательным доступом по типу: данные, поступившие последними, извлекаются первыми. Извлечение данных из стека и их восстановление в регистре МП является действием, обратным операции загрузки в стек.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-05-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: