Поиск по сайту: |
|
По базе: |
|
Главная страница > Обзоры по типам > Микроконтроллеры > 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 байта для каждого уровня вложенной подпрограммы.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|