Cтраница 3
Последние две команды используются для инициализации указателя стека перед использованием стека. Инициализация указателя стека обеспечивает правильное использование выделенного для стека участка ПАМЯТИ. Таким образом, указатель стека необходимо инициализировать прежде, чем в ИСПОЛНИТЕЛЬНОЙ процедуре встретится первая команда CALL. По этой причине операция инициализации указателя стека должна находиться в ИСПОЛНИТЕЛЬНОЙ процедуре, а не в процедуре ИНИЦИАЛИЗАЦИИ СИСТЕМЫ, как предполагалось в примерах гл. Читатель, наверное, уже отметил, что стековые команды функционируют попарно. [31]
Укажите серьезную опасность, которой может подвергаться программа при использовании стека для хранения данных. [32]
Сслешгае сте. [33] |
В программе, содержащей значительное количество подпрограмм, соглашение по использованию стека иозсоляет достичь значительна экономии памяти. [34]
Спуск по левому гребню графа может быть выполнен либо с использованием стека, либо с помощью реверсирования указателей. [35]
Наличие двух указателей стека упрощает поддержку многозадачных систем, а также оптимизацию использования стека для таких систем. [36]
Сслешгае сте. [37] |
Процедуры н функции языка Паскаль передаю яраметры в соответствии с соглашением по использованию стека аналогично тому, как это било описано выше. [38]
Подпрограмму, которая хранит свой адрес возврата, все параметры и локальные переменные в соответствии с соглашением по использованию стека можно вызывать рекурсивно без появления ошибок. Это объясняет, почему процедуры языка Паскаль могут вызывать рекурсивно друг друга, а подпрограммы языка Фортран не могут этого делать вследствие того, что в языке Фортран обычно используются назначаемые фиксированные ячейки памяти для хранения параметров. [39]
В этой лекции рассказывается о структуре процессорного ядра и особенностях системы команд микроконтроллеров, функциях и организации памяти программ и данных, об использовании стека и внешней памяти микроконтроллеров. [40]
Несмотря на свою центральную роль и разработке алгоритмов, рекурсия - вовсе не пакаиел на вес случаи жизни, Кнк было показано при исследовании алгоритмов обхода деревьев и графов, алгоритмы с использованием стека ( которые рекурсивны л о своей природе) - не единственная возможность при необходимости управлять задачами с множеством вычислений. Эффективная технология разработки алгоритмов лля решения многих задач заключаете & использовании обобщенных реалнзйинй с ] ] рр [ меке1 - [ ием очередей, отличающихся от стеков, которые прел оставим ют свободу выбирать следующую задачу Б соответствии с какнм-ли Сю Goi субъектном и ч критерием, нежели простой выбор чего-шбо сюиеднего. [41]
Заметим, что в данном случае мы программировали некоторый законченный этап вычислений - оператор присваивания; в результате его выполнения мы пришли к тому же состоянию стека, которое было к началу выполнения данной программы - эта весьма важная особенность использования стека очень удобна для программирования. [42]
Стратегия, которая заключается в том, что в стек помещается больший их двух подфайлов, приводит к тому, что каждая запись в стеке составляет не более чем половину записи, предшествующей ей в стеке, поэтому под стек отводится пространство памяти, достаточное для размещения примерно gN записей. Использование стека по максимуму имеет место, когда точка разделения приходится на середину файла. Что касается файлов с произвольной организацией, то фактический максимальный размер стека намного меньше; для вырожденных файлов его размер, по-видимому, также будет небольшим. [43]
Если алгоритм вызывает слишком глубокую рекурсию, он исчерпает всю память стека. Сократите использование стека, уменьшив количество переменных, которые размещает процедура, или описывая переменные глобально. [44]
IgjV Использование стека по максимуму имеет место когда точка разделений приходится на середину ф Й - чй Чн хлсаетсл фяй ю0 с прои иолыюй орг ни шкн, то фс1ктическлй максимальный размер стека намного меньше: для вырожденHLE файлов его рнзмср. [45]