В каждый данный момент функционирующая ЭВМ находится в каком-то одном определенном состоянии, характеризующемся содержимым регистров, ячеек памяти и некоторой другой информацией, такой, как, например, адрес, хранящийся в счетчике команд, значение признака результата, а также осуществляемые в данный момент действия по обмену с периферийными устройствами. Кроме содержимого регистров и памяти, состояние ЭВМ характеризует содержимое так называемого Слова состояния программы (PSW), которое представляет особый интерес для программистов.
Как мы увидим в дальнейшем, PSW играет большую роль и на этапе выполнения программы. В гл. 12 мы будем существенно использовать значение его содержимого для целей отладки программ. Рассмотрение PSW будет проходить в три этапа. На первом мы познакомимся с той частью задаваемой им информации, которая представляет для нас непосредственный интерес в данный момент.
Затем мы обсудим роль, которую PSW играет в организации системы прерываний, и, наконец, перейдем к тем связанным с использованием PSW вопросам, которые хотя и не очень существенны для нас сейчас, но значительно облегчат нам работу в дальнейшем.
Step 7. Немного философии и слово состояния.
Основные компоненты PSW
Слово состояния программы следовало бы назвать (как это и сделано в некоторых системах, схожих с Системой 360) Двойным словом состояния программы. PSW фактически представляет собой 64-раз- рядный регистр, подразделяемый, как это показано на рис. 11.1, на несколько полей. Для пользователей обычно представляет интерес содержимое второго слова.
В этой части регистра находится информация, наиболее тесно связанная с процессом выполнения их программ. Содержимое первого слова имеет большое значение для правильного функционирования операционной системы, поскольку оно содержит некоторую управляющую информацию, влияющую на работу системы в целом.
Микропроцессоры (микроконтроллеры) аккумуляторного типа и «регистр-регистрового» типа. Слово состояние программы.
Регистры микропроцессора функционально неоднородны: одни служат для хранения данных или адресной информации, другие — для управления работой ЦП. В соответствии с этим все регистры можно разделить на регистры данных, указатели и регистры специального назначения.
Регистры данных участвуют в арифметических и логических операциях в качестве источников операндов и приемников результата, адресные регистры или указатели используются для вычисления адресов данных и команд, расположенных в основной памяти. Специальные регистры служат для индикации текущего состояния ЦП и управления работой его составных частей. Возможна архитектура, при которой одни и те же регистры используются для хранения как данных, так и адресной информации. Такие регистры называются регистрами общего назначения (РОН). Способы использования того или иного вида регистров определяют конкретные особенности архитектуры микропроцессора.
Среди регистров данных часто выделяют один регистр, называемый аккумулятором A (Accumulator), с которым связывают большинство команд арифметической и логической обработки данных. Это означает, что арифметические и логические команды используют в качестве одного из своих операндов содержимое аккумулятора и сохраняют в нем результат операции.
ПОТОК. Инструкция к абсолютной продуктивности
Ссылка на него производится неявно с помощью кода операции. При этом нет необходимости в коде команды выделять специальную область для адресов операнда и результата. Такой тип архитектуры микропроцессора называется аккумуляторным. К недостаткам такой архитектуры можно отнести относительно низкое быстродействие, объясняемое тем, что аккумулятор является ”узким местом”, в которое каждый раз необходимо сначала занести операнд перед выполнением операции. Примером такой архитектуры могут служить микроконтроллеры семейства MCS-51 фирмы Intel.
Другим примером организации регистров данных являются т.н. “рабочие регистры” R0, R1, и т.д. В этом случае операнды и результаты арифметических и логических операций могут храниться не в одном, а в нескольких регистрах, что расширяет возможности по манипуляции данными. В отличие от аккумулятора рабочие регистры адресуются явно в коде команды.
Такой тип архитектуры микропроцессора называется регистровым. Примером такой организации могут служить микропроцессоры семейства 80х86 фирмы Intel. В ряде микропроцессоров, предназначенных для работы в реальном масштабе времени, предусмотрены не один, а несколько наборов рабочих регистров. В каждый момент времени доступен лишь один из наборов регистров, выбор которого осуществляется записью соответствующей информации в определенный служебный регистр. Примером таких устройств могут служить микроконтроллеры семейства MCS-48 фирмы Intel.
Практически во всех современных микропроцессорах выделяют отдельную область памяти под так называемый “стек”, используемый, в общем случае, для передачи параметров процедурам и сохранения адресов возврата из них. Стек может быть расположен внутри микропроцессора или вне его.
Он может занимать часть адресного пространства DSEG или RSEG, а может быть расположен и отдельно от них. В последнем случае говорят о т.н. “аппаратном стеке”. Передача функций аккумулятора вершине стека приводит к т.н. “стековой архитектуре”.
Стековая организация дает возможность использовать безадресные команды, код которых имеет наименьшую длину. Безадресные команды оперируют данными, находящимися на вершине стека и непосредственно под ней. При выполнении операции исходные операнды извлекаются из стека, а результат передается не вершину стека.
Стековая архитектура обладает высокой вычислительной эффективностью. Существует специальный язык высокого уровня FORTH, построенный на основе безадресных команд. Такая архитектура используется в специализированных процессорах высокой производительности и, в частности в RISC-процессорах.
Служебные регистры, расположенные внутри микропроцессора, предназначены для различных функций управления его работой и индикации состояния его составных частей. Их состав и организация зависят от конкретной архитектуры процессора и различаются в каждом конкретном случае.
Наиболее часто встречающимися регистрами специальных функций являются “программный счетчик” PC (Program Counter), “указатель стека” SP (Stack Pointer) и “слово состояния программы” PSW (Program Status Word). Программный счетчик PC в каждый конкретный момент времени содержит адрес команды, следующей в CSEG за той, которая в данный момент выполняется. Указатель стека SP хранит текущий адрес вершины стека. Слово состояния программы PSW содержит набор текущих признаков результата выполнения операции. С каждым признаком результата связывается одноразрядная переменная-флажок, соответствующая определенному биту PSW.
К типовым флажкам-признакам относятся:
— CF (Carry Flag) — флажок переноса из старшего разряда АЛУ. Равен 1, если в результате выполнения арифметической операции или операции сдвига произошел перенос из старшего разряда результата;
— ZF (Zero Flag) — флажок признака нуля. Равен 1, если результат операции равен 0;
— SF (Sign Flag) — флажок знака результата. Дублирует знаковый разряд результата операции;
— AF (Auxilinary Carry Flag) — флажок дополнительного переноса. Равен 1, если в результате выполнения арифметической операции или операции сдвига произошел перенос из младшей тетрады результата в старшую. Часто используется в двоично-десятичной арифметике;
— OF (Owerfow Flag) — флажок переполнения. Равен 1, если в результате выполнения арифметической операции произошло переполнение разрядной сетки результата;
— PF (Parity Flag) — флажок четности. Равен 1, если число в результате операции нечетно и наоборот.
— IF (Interrupt Flag) — флажок разрешения прерывания. Индицирует, разрешены ли прерывания в системе.
Конкретные флаги используются программой для анализа результата предшествующей команды и принятия решения о дальнейшем ходе выполнения программы. Специальные регистры могут занимать часть адресного пространства DSEG или RSEG, а могут быть расположены и отдельно от них.
Источник: cyberpedia.su
Большая Энциклопедия Нефти и Газа
Слово состояния программы — двойное слово, предназначенное для управления порядком выборки команд, фиксации и индикации состояния процессора по отношению к выполняемой программе. Слово состояния программы, используемое в данный момент времени, называется текущим. [1]
Слово состояния программы хранит также программные состояния процессора для данной программы, определяемые состоянием соответствующих управляющих триггеров. [3]
Слово состояния программы хранит также программные состояния процессора для данной программы, определяе мые состоянием соответствующих управляющих триггеров. [4]
Слово состояния программы PSW , под управлением которого выполняется текущая программа. [5]
Слово состояния программы PSW содержит управляющую информацию; в результате прерывания прежняя информация замещается новой. Дополнительная управляющая информация и информация о состоянии содержатся, в управляющих регистрах и постоянно распределенных ячейках основной памяти. [6]
Напечатано старое слово состояния программы [ OLD PSW IS ] xxx, восьмая литера которого является кодом прерывания и указывает причину прерывания. [7]
Напечатано старое слово состояния программы ххх , восьмая литера которого является кодом прерывания и указывает причину прерывания. [8]
Часть слова состояния программы , начиная с бита 32, будем называть Р — счетчиком. [9]
В слове состояния программы находится управляющая информация, которая заменяется при прерываниях. Кроме того, управляющая информация и информация о состоянии содержатся в управляющих регистрах и ячейках основной памяти, имеющих постоянное назначение. [10]
В слове состояния программы устанавливается признак результата, равный i, так как мантисса числа, находящаяся в четвертом регистре, отрицательная. [11]
Если в слове состояния программы находится код условия 0, отвечающий нулевому результату, то перехода по адресу второго операнда не будет. [12]
Регистр прерываний и слово состояния программы характеризуют состояние процессора. Кроме них, состояние процессора описывается содержимым общих регистров, регистров с плавающей запятой. [13]
Для чего предназначено слово состояния программы и какое значение оно может принимать. [14]
Состояние программы представляется словом состояния программы ( ССП), в котором размещается основная информация, необходимая для анализа причин прерывания и пуска прерванной программы. [15]
Источник: www.ngpedia.ru