- •5 Задача 44
- •1. Відкрита архітектура пеом
- •2. Функціональна схема базової моделі мікропроцесора. Схеми напівсуматора і суматора. Дії над двійковими та двійково-десятковими числами.
- •Додавання
- •Віднімання
- •3. Логічна структура мікропроцесора
- •Сегментные регистры
- •Регистры общего назначения
- •Флаги состояния
- •Флаг направления
- •Системные флаги
- •Регистр управления
- •4. Адресація пам’яті
- •Сегментная адресация памяти
- •Параграфы
- •Понятия команды и формата команды
- •5. Сторінкова організ оп пам’яті. Таблиці, дескриптори
- •Понятие о страничной модели памяти
- •6. Структура таблиц idt. Дескриптор шлюза.
- •Дескриптор шлюза
- •7. Формування фізичної адреси з логічної адреси для сегментної та сторінкової схем організації пам’яті Страничная организация
- •8. Принципи роботи vmm
- •Обзор Администратора виртуальной памяти (vmm)
- •9. Використання регістрів загального призначення
- •10. Організація стеку. Адресація стекової пам’яті
- •11. Архітектура регістру ознак (flags)
- •12. Апаратно-програмні засоби певм.
- •13. Механізм переривань
- •14. Апаратні переривання, їх призначення. Архітектура мікросхеми 8859. Обробка апаратних переривань.
- •15. Контролер apic
- •16. Принцип роботи сопроцесора
- •17. Загальні поняття про канали та порти
- •18. Мікросхема паралельного інтерфейсу
- •19. Структура cmos-memory
- •20. Архітектура мікросхеми таймера
- •1 Задача
- •2 Задача
- •Програма може бути якась така:
- •5 Задача
- •6 Задача
10. Організація стеку. Адресація стекової пам’яті
http://uk.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA
Стек
Стек в інформатиці та програмуванні — різновид лінійного списку, структура даних, яка працює за принципом (дисципліною) «останнім прийшов — першим пішов» (LIFO, англ. last in, first out). Всі операції (наприклад, видалення елементу) в стеку можна проводити тільки з одним елементом, який знаходиться наверхівці стеку та був введений в стек останнім.
Організація в пам'яті комп'ютера
Стек може бути організований як масив або множина комірок в певній області комп'ютера з додатковим зберіганням ще й вказівника на верхівку стека. Заштовхування першого елемента в стек збільшує адресу вказівника, виштовхування елементу зменшує її. Таким чином, адреса вказівника завжди відповідає комірці масиву, в якій зараз знаходиться верхівка стеку.
Багато процесорів ЕОМ мають спеціалізовані регістри, які використовуються як вказівники на верхівку стеку, або використовують деякі з регістрів загального вжитку для цієї спеціальної функції в певних режимах адресації пам'яті.
http://www.avinout.com/osi_t10r4part1.html
Стек – неявный способ адресации, когда информация хранится в виде последовательности, в которой доступен только последний член. Аналогией стека может служить детская пирамидка, нижнее кольцо которой невозможно снять, пока не будут сняты все остальные. Стек всегда имеет единственный вход и выход информации - для хранения его адреса служит специальный регистр микропроцессора под названием указатель стека.
Стек – это структура данных, над которой можно осуществлять две операции: проталкивание (Push) значения и выталкивание (Pop).
Пример: Пусть требуется на время сохранить значения трех целочисленных 2-байтовых переменных N1, N2 и N3, а затем их все восстановить. Воспользуемся для этого стековой памятью. Пусть указатель стека содержит адрес 2006 (рис. а). Тогда по команде "записать в стек N1" процессор проделает следующее:
уменьшит указатель стека на 2;
запишет N1 по полученному адресу 2004 (рис. б);
аналогично при выполнении команд "записать в стек N2" и "записать в стек N3" значения этих переменных попадут в ячейки 2002 и 2000, причем указатель стека станет равным 2000 (рис. в).
® |
2006 |
|
|
|
2006 |
|
|
2004 |
|
|
® |
2004 |
N1 |
|
2002 |
|
|
|
2002 |
|
|
2000 |
|
|
|
2000 |
|
|
|
А |
|
|
|
б |
|
2006 |
|
|
|
2006 |
|
|
2004 |
N1 |
|
|
2004 |
N1 |
|
2002 |
N2 |
|
® |
2002 |
N2 |
|
2000 |
N3 |
|
|
2000 |
??? |
® |
|
В |
|
|
|
Г |
Теперь извлечем информацию: выполним команду "прочитать из стека в N3". При этом процесор:
1. считает в N3 значение из стека;
2. увеличит указатель на 2 (рис. г);
3. аналогично прочитаем N2 и N1, после чего стек опустеет и вернется к начальному состоянию (рис. а.)
Примечание. Значение в стеке после считывания не исчезает. Но его там можно не увидеть. Дело в том, что процессор иногда временно использует стек для своих "внутренних" нужд. При этом некоторые ячейки, адреса которых меньше текущего указателя стека изменятся. Следовательно, во избежание неприятностей лучше всегда считать, что после считывания информации в стековой памяти она пропадает.
В командах работы со стеком адрес ОЗУ не фигурирует в явном виде. Но при этом предполагалось, что указатель стекауже установлен на свободную область ОЗУ. В противном случае, запись в стек может стереть нужную информацию. Ответственность за правильность значения указателя стека лежит на программном обеспечении.
Стек используется в вычислительной технике очень широко:
На аппаратном уровне процессор запоминает в стеке текущее значение счетчика адреса команд при вызове подпрограммы.
В стек предварительно заносятся необходимые для подпрограммы параметры (так реализуется вызов процедур и функций с параметрами в языке Паскаль).
Стек используется для временного сохранения значений внутренних регистров процессора
Процессор использует стек при реализации прерываний от внешних устройств.
Самая простая реализация стека - это массив и индекс последнего находящегося в стеке элемента. Этот индекс называется указателем стека (SP- Stack Pointer).Стек может расти как вверх, так и вниз.
