Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №3 [вариант 10].doc
Скачиваний:
19
Добавлен:
02.05.2014
Размер:
107.52 Кб
Скачать

Министерство образования РФ

Уфимский Государственный Авиационный Технический Университет

Кафедра АСУ

Отчет по лабораторной работе № 3

Подпрограмма и стек

Выполнили: студенты гр. АСОИ-331

Максютова Д.Р. Катьянова Е.В.

Проверил: Дубинин Н.М.

Уфа 2008

Подпрограмма и стек

1. Цель работы

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

2 Теоретические сведения

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

Принцип работы стековой памяти поясняется рисунком 3.1.

Х1 0 --- ОЗУ

X2 РА DC 1-- :

Х3 ---______

Х4 -- ______ запись

: Xn__

: SP  : чтение

: ______

Х1_ CТЕК

---______

Хn R 2R -1--

запись чтение

а б

Рисунок 3.1

Работа стековой памяти осуществляется по правилу: "последним записан - первым считан". Так, вначале записывается в стек (рисунок 3.1 а) число Х1. Затем число Х1 сдвигается вверх при записи числа Х2 в стек. Тем самым любое записываемое число Хi сдвигает массив "вверх" и размещается в нижней ячейке. При чтении считывается содержимое самой "нижней "ячейки, а весь оставшийся массив чисел сдвигается "вниз". Размещая и считывая двоичные коды в указанном порядке, легко организовать поиск последнего записанного кода или организовать последовательную обработку кодов Хn, …, Х1. Однако микрооперация сдвига массива требует значительных аппаратных затрат. С целью упрощения стековой памяти используют специальный реверсивный счетчик-указатель стека SP. При использовании SP не требуется микрооперация сдвига массива, достаточно перемещения возбуждения "вверх" или "вниз" выходных шин с дешифратора адреса. Так, при записи счетчик декрементируется SP-1 и число через шину данных записывается "вверх" (в сторону младших номеров шин DC), при чтении число сначала считывается, затем устанавливается адрес следующего операнда (SP+1) для возможного считывания.

При записи (считывании) двухбайтных операндов в восьмиразрядную память последовательно инкрементируется (декрементируется) дважды SP+2. При этом запись (считывание) осуществляется побайтно в 2 соседние ячейки: в М(SP), М(SP+1) - при считывании, в М(SP-1), М(SP-2) - при записи. Содержимое ячеек М(SP) и М(SP+1) определяет информацию в вершине стека (SÃ), которая загружается в РОН при чтении стековой памяти.