Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > HC08 > Архитектура

реклама

 




Мероприятия:




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

В ряде систем используется размещение некоторых локальных переменных или оперативного пространства в стеке для использования подпрограммами обработки прерываний. Область временного хранения может быть получена использованием команд 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 байта для каждого уровня вложенной подпрограммы.


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





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники