русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ


Дата добавления: 2014-11-28; просмотров: 575; Нарушение авторских прав


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

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

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

Состояние стека отображается во внутреннем 16-битном регистре SP – указателе стека, который содержит адрес вершины стека.

В типовых МП фактическое положение стека в ОЗУ определяется программистом. До использования стека необходимо инициализировать SP командой LXI SP на максимальный адрес области (вершину), выделяемой для стека.

Стек функционирует как память с последовательным доступом по типу данные, поступившие последними, извлекаются первыми (тип LIFO от LAST IN - FIRST OUT – последний входит - первый выходит или FILO от FIRST IN - LAST OUT – первый входит - последний выходит).

Содержимое любого регистра МП можно поместить в стек с помощью команды PUSH, а из стека можно извлечь командой POP последние включенные в него данные регистра МП. Обе стековые операции выполняются с 16-битовым словами, т.е. в стек можно включать только содержимое регистровых пар и извлекать из стека можно только регистровые пары.

Извлечение из стека не разрушает в памяти считываемые данные и, произведя специальными командами декремент SP на 2, можно вновь извлечь из стека ранее считываемые данные. При программировании надо следить за использованием стека, в частности, каждой команде PUSH должна соответствовать команда POP.



В Intel 8080 есть специфическая 1-байтная команда XTHG, которая производит обмен содержимого регистров H, L и двух верхних ячеек стека, т.е. последних загруженных в стек данных, при этом значение SP не изменяется.

К особенностям микропроцессора Intel 8080 относится однобайтная команда SPHL передачи 16-битных данных регистра HL в указатель стека.

Следует отметить, что команда CALL сочетает функции операций перехода и загрузки в стек. Адрес перехода к подпрограмме зафиксирован во втором и третьем байте команды CALL, а адрес следующей команды за CALL отправляется в стек. После завершения выполнения подпрограммы команда RET извлекает из стека адрес следующей команды основной программы и загружает его в счетчик команд PC.

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

Однако микропроцессор Intel 8080 не имеет никаких средств аппаратного контроля за поведением стека. Ошибки при работе со стеком приводят к двум ситуациям:

1. Переполнение стека – указатель стека достиг верхней границы области стека и делается попытка произвести дополнительное включение в стек;

2. Антипереполнение стека – указатель стека находится на нижней границе области стека и делается еще одна попытка извлечения из стека.

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

 



<== предыдущая лекция | следующая лекция ==>
Опыт 3. Изучение процедуры автоматического выполнения ассемблерной программы | Опыт 1. Изучение группы команд записи в стек


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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