Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 2


СПОСОБЫ АДРЕСАЦИИ - часть 5


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

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

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

При выполнении команды загрузки слова в стек (содержимое РгК) из регистра (в данном случае из Рг5) или ячейки ОП сначала содержимое указателя стека (УС) уменьшается на 1 (стек "перевернутый"), а затем слово помещается в ячейку стека, указываемую УС. При выгрузке слова из стека в регистр или ОП слово сначала извлекается из вершины стека, а затем УС увеличивается на 1 (на рисунке не

показано).

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

Безадресные команды на основе стековой адресации предельно сокращают формат команд, экономят память и повышают производительность ЭВМ.

В современных ЭВМ (микропроцессорах) стек и стековая адресация широко используется для:

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

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




Начало  Назад  Вперед