Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Область стека. Обязательно потренируйтесь в программировании переходов. Попробуйте самостоятельно написать последовательности из двух команд реализующих




Введение

Стековая память

Задание по разделу

Обязательно потренируйтесь в программировании переходов. Попробуйте самостоятельно написать последовательности из двух команд реализующих следующие выражения:

 

IF A = B THEN метка

IF A <= B THEN метка

IF A >= B THEN метка

IF A <> B THEN метка

IF A < B THEN метка

 

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

 

1) В обычную оперативную памяти и запись, и чтение – всегда производится с указанием адресов. Но это - не всегда удобно. Например: когда нужно на время освободить регистр и сохранить его содержимое, чтоб потом - вернуть старое содержимое обратно. Запоминать адреса на которые производилось временное сохранение регистров… Нет, полезна и память такая, с которой можно работать - без указания адресов. Такая память в ЭВМ поддерживается, называется – "стековой памятью".

 

2) Проблема, как при чтении отличить – какое именно из слов данных ранее записанных в стековую память будет прочитано? Решается использованием следующего принципа работы стековой памяти:

– В стековую память можно записать одно или несколько слов памяти (данных) без указания адреса записи

– При чтении, первым прочитается то слово, что было занесено в стек последним, и далее - порядок чтения противоположен порядку записи.

 

 

3) Механизм стековой памяти обеспечивается следующими командами:

PUSH reg – сохранить регистр reg в стековой памяти

POP reg – выбрать данные из стековой памяти и записать в reg.

 

4) При пользовании командами PUSH reg, POP reg что в ЭВМ присутствует специальный аппаратный блок памяти, особый – поддерживающий принцип работы стековой памяти. На самом деле это - иллюзия. Данные заносимые в стек командой PUSH на самом деле – размещаются в обычной оперативной памяти (ОЗУ), а иллюзия работы команд РUSH и РОР с отдельной памятью - поддерживается специальными алгоритмами команд PUSH reg, POP reg.. Говорят о "алгоритмической эмуляции" стековой памяти в ЭВМ.

 

Область стека – это участок в ОЗУ, в котором и размещаются данные, помещаемые в стековую память.

 

 

Структура этой области:

 

 

На рисунке:

 

1 – Область стека – резервируется ОС для использования в качестве области для размещения данных стека при начальной загрузке ОС.



N – число ячеек, отведённых под область стека.

Н – первая ( с ниименьшим адресом);

К – последняя ( с наибольшим адресом) ячейки из области стека;

2 – SP (Stack Pointer, указатель стека) – специальный регистр, играющий большую роль в алгоритмах команд PUSH и POP.

 

Перед тем как операции со стеком будут впервые использованы, требуется специальная подготовка. Подготовка осуществляется операционной системой, и ещё на ранних стадиях загрузки операционной системы. Состоит в следующем:

1) Операционная система "резервирует" часть ОЗУ под область системного стека. Резервирует – в данном случае это означает просто то, что операционная система никогда не будет использовать адреса, отведённые под область стека - для какого либо другого использования.

2) В регистр SP прописывается адрес начала стека, первой ячейки стека. Как мы увидим позже, в ходе работы со стековой памятью – адрес, прописанный в SP, будет меняться. Говорят: SP указывает на первую из незанятых данными стека ячеек из области стека (на рисунке показано стрелкой от SP - к ячейке), и эту ячейку - принято называть "вершина стека".

 

Итак: в начале работы ЭВМ вершина стека - находится в первой ячейки памяти из области стека. Посмотрим: что будет происходить далее - при выполнении команд PUSH reg и POP reg.

 

 





Дата добавления: 2013-12-12; Просмотров: 22; Нарушение авторских прав?;


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



ПОИСК ПО САЙТУ:





studopedia.su - Студопедия (2013 - 2017) год. Не является автором материалов, а предоставляет студентам возможность бесплатного обучения и использования! Последнее добавление ip: 54.162.139.105
Генерация страницы за: 0.008 сек.