Cтраница 1
Область стека, доступная во время выполнения подпрограммы, называется кадром стека. [1]
Область стека не принадлежит ни к программной области, ни к области данных, а указатель стека пользователю недоступен. Текущее значение счетчика команд посылается в стек, когда выполняется команда CALL или производится обработка прерывания. При выполнении процедуры возврата из подпрограммы ( команды RETLW, RETFIE или RETURN) содержимое счетчика команд восстанавливается из стека. Регистр PCLATH при операциях со стеком не изменяется. [2]
Такой обмен удобно осуществлять через область стека. В процессорах СМ-4 и СМ-1420 имеются два указателя стека: один для системного режима, другой - для пользовательского. [3]
Следом за сегментом данных следует область стека. В ней располагаются локальные переменные и параметры-значения процедур и функций во время их работы по вызову. Сегмент стека содержится в регистре SS процессора. [4]
В 32-разрядных СМ ЭВМ - область стека, содержащая параметры команды вызова процедуры. [5]
Что произойдет, если указатель стека не указывает действительную область стека, когда происходит прерывание. Лучший случай: не будут ли утеряны адрес возврата и информация о состоянии процессора. [6]
Когда прерывание или системный запрос передает управление операционной системе, обычно используется область стека ядра, а не стек прерванного процесса. [7]
Компактная модель используется, когда в программах с отдельной областью команд и данных имеется также одна или несколько областей стеков, а также специальные дополнительные области. [8]
В блоке памяти данных, расположенных на, кристалле ( для ВЕ35 и ВЕ48), выделены два банка по 8 байт ( адреса 0 - 7, 24 - 31), являющихся регистрами общего назначения РОН1 и РОН2, переключение от одного к другому осуществляется также программно по командам SELRBO и SELRB1; между ними находится область стека. Внешняя память данных имеет максимальную емкость 256 байт и свою адресацию. [9]
Команды обеспечивают выделение и освобождение областей памяти для локальных переменных при вызовах процедур. Область стека для локальных переменных резервируется автоматически путем приращения значения указателя стека на число байтов, необходимых для локальных переменных. Доступ к локальным переменным осуществляется при использовании указателя кадра в качестве базового регистра. После завершения процедуры по команде производится уменьшение указателя стека, освобождается память локальных переменных, а затем восстанавливается предыдущий указатель кадра, что позволяет осуществлять вложение процедур. [10]
На командах с адресами 63, 64 и 66 происходит преобразование содержимого PC в систему счисления, в которой работает адресный счетчик ( АС), и запись преобразованного значения в АС. По команде с адресом С9 происходит обмен содержимым области стека SPC и страницы программной памяти. Запись информации в блок Ms выполняется по команде с адресом ВС. [11]
Бит ЕХР в регистре статуса ( SR) определяет активный режим. Активный указатель стека ( SP) используется явно для указания ячейки памяти, когда используется режим косвенной регистровой адресации. Указатели стека указывают на следующую незанятую область стека. [12]
Кроме того, в структуре vm area struct записано, есть ли у этой области памяти место хранения на диске, и если да, то где оно расположено. Текстовые сегменты в качестве резервного хранения используют двоичные файлы, а отображаемые на адресное пространство памяти файлы выгружаются на диск в соответствующие им файлы. Всем остальным областям, таким как область стека, не назначаются области резервного хранения, пока не потребуется их выгрузка на диск. [13]
Кроме того, в структуре vm area stmct записано, есть ли у этой области памяти место хранения на диске, и если да, то где оно расположено. Текстовые сегменты в качестве резервного хранения используют двоичные файлы, а отображаемые на адресное пространство памяти файлы выгружаются на диск в соответствующие им файлы. Всем остальным областям, таким как область стека, не назначаются области резервного хранения, пока не потребуется их выгрузка на диск. [14]