В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Размещение рабочего пространства стека

В ряде систем используется размещение некоторых локальных переменных или оперативного пространства в стеке для использования подпрограммами обработки прерываний. Область временного хранения может быть получена использованием команд PSH и PUL; однако структура стека "последним вошел - первым вышел" (LIFO) делает такой прием непрактичным для данных с объемом более одного - двух байтов. CPU08 располагает командой AIS (16-разрядное сложение с указателем стека), позволяющей распределять пространство. Затем, для обращения к этому пространству могут быть использованы команды индексации указателя стека, как это показано в следующем примере.

    IRQINT    PSHH              ;Сохранить регистр H
              AIS # - 16        ;Разместить 16 байтов локальной памяти
              STA 3, SP         ;Сохранить значение во втором байте локального пространства

    * Примечание: Указатель стека должен всегда указывать на следующий пустой уровень стека. 
    *             Уровень, адресованный 0, SP, следовательно, никогда не должен быть 
    *             использован, если только программист может гарантировать отсутствие вызова 
    *             подпрограммы из подпрограммы обслуживания прерывания.
                  o
                  o
                  o
                  LDA   3, SP   ;Считать последнее значение
                  o
                  o
                  o
                  AIS   #16     ;Очистить стек
                  PULH          ;Восстановить регистр H
                  RTI           ;Возврат

* Примечание: Вызов подпрограммы изменяет смещение от SP до пространства локальной переменной, поскольку адрес возврата находится в стеке. Если пользователь желает обратиться к этому пространству данных из подпрограммы вызванной внутри подпрограммы обслуживания прерывания, то смещение должно быть подстроено на +2 байта для каждого уровня вложенной подпрограммы.


<-- Предыдущая страница Оглавление Следующая страница -->