Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Принципы организации стековой памяти




Стековою памятью или стеком называют память, в которой реализован принцип: последний вошел - первый вышел (LIFO - Last Input First Output), то есть данные, записанные последними считываются первыми. В МПС стековая память используется для вызова подпрограмм, в том числе и вложенных, и обработки прерываний.

За способом реализации различают аппаратный и аппаратно-программный стеки.

 


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

 

 

Рис. 6.3. Принцип работы аппаратного стека

 

Во время записывания слова 1 в стек оно размещается в первой свободной ячейке памяти (в первом регистре) - вершине стека. Следующее слово сдвигает предыдущее на одну ячейку вверх, занимает его место и т.д. Запись слова 9 приводит к переполнению стека и потери слова 1. Считывания слов из стека осуществляется в обратном порядке, то есть сначала считывается слово 9, записанное последним. Считывания происходит в обратном порядке, например, считывания слова 6 не возможно, пока не будут считанные слова 7, 8 и 9.

Информационная емкость аппаратного стека определяется как Nxn, где количество n-разрядних слов N равняется количеству регистров, которое может составлять несколько десятков. Аппаратные стеки, применяемые в РIС-процессорах, имеют 2, 8 или 16 регистров (N = 2, 8, 16), в которых размещаются 12-, 14- или 16-разрядные слова (п = 12,14, 16).

Основным преимуществом аппаратного стека есть высокое быстродействие, а недостатком - ограниченная информационная емкость.

Аппаратно-программный стек реализуется за счёт использования части ОЗУ статического типа и специального регистра SP (Stack Pointer - указатель стека), который содержит адрес последней занятой ячейке стека. Принцип работы аппаратно-программного стека для микропроцессоров i80x86 показан на рис. 5.36. В аппаратно-программном стеке физического сдвига данных во время записи и считывания не происходит. Сдвиг данных осуществляется за счёт изменения значения SP. В начале программы в регистр SP заносят адрес вершины стека. После каждой операции записи (считывания) содержимое регистра SP изменяется. Для МП i80x86 одновременно можно записывать в стек или считывать из него двухбайтовые слова, поэтому SP изменяется на два.

 

Рис 6.4. Принцип работы аппаратно-программного стека.

 

Во время записи в стек значения SP уменьшается на два (стек «растет» в область маленьких адресов), а во время считывания из стека - увеличивается на два. Итак, указатель стека SP всегда содержит адрес ячейки, к которой состоялось последнее обращение. В некоторых командах, например в командах вызова подпрограмм CALL, прерываний INT, возвращений из подпрограмм RET - обращение к стеку осуществляется автоматически. Во время вызова подпрограммы (рис. 5.37) в стеке запоминается адрес команды, следующей после вызова команды ADD, то есть содержимое программного счетчика PC запоминается в верхней незанятой ячейке стека, а указатель стека уменьшается на два.

 

 

Рис. 6.5. Работа стека во время вызова подпрограмм.

 

По возвращению из подпрограммы по команде RET содержимое верхней ячейке стека перезаписывается в программный счетчик PC, указатель стека SP увеличивается на два. После этого начинает выполняться команда ADD. Кроме команд CALL, INT и RET, для работы со стеком используют также команды PUSH и POP, предназначенные для временного хранения в стеке содержимого регистров и восстановления, то есть пересылка информации из стека в регистры. В МП Intel, начиная с i286, существуют команды PUSHA и РОРА (PUSH All и POP All), предназначенные для временного хранения в стеке и восстановления содержимого всех регистров МП. К аппаратно-программному стеку можно обратиться также как к ОЗУ с произвольной выборкой. В МП i80х86 для этого используют косвенную адресацию с помощью регистра ВР. Итак, в стек можно записать значение параметров подпрограмм перед их вызовом.

 


Контрольные вопросы




Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 6253; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.