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

 
Пересюхтюмя


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





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





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


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





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


Доступ к стеку

Аппаратный стек используется автоматически командами CALL, RET и RETI, но также он может явно использоваться для сохранения и восстановления данных. Все данные сохраняются в виде 16 битных слов.

Команда PUSH увеличивает указатель стека SP, а затем сохраняет значение в стеке. При помещении в стек 16- битного значения сохраняются вводимые данные. Однако при помещении в стек 8- битных данных старший байт стека сохраняет содержимое префиксного регистра. Мнемоника доступа к стеку @++SP осуществляет помещение данных, находящихся по указанному адресу. Таким образом, приведенные ниже две последовательности команд эквивалентны:

  move    PFX[0], IC
  push    PSF            ; сохранение в стеке: IC:PSF
  move    PFX[0], IC
  move    @++SP, PSF     ; сохранение в стеке: IC:PSF

Команда POP извлекает из стека значение и уменьшает указатель вершины стека. Мнемоника доступа к стеку @SP-- определяет в качестве источника специфический регистр, который генерирует этот режим. Таким образом, приведенные ниже две последовательности команд эквивалентны:

   pop     PSF
   move    PSF, @SP--

Команда POPI эквивалентна команде РОР, за исключением того, что она дополнительно очищает бит INS. Таким образом, приведенные ниже две последовательности команд эквивалентны:

   popi      IP
   reti

Мнемоника @SP-- позволяет микроконтроллерам MAXQ использовать стек в качестве операнда АЛУ (например, ADD src, XOR src, и т.д.), не требуя, чтобы значение предварительно было извлечено в регистр или аккумулятор.

    add     @SP--       ; суммирование последних трех слов, помещенных в стек,
    add     @SP--       ; с аккумулятором Acc, переполнение игнорируется
    add     @SP--

Указатель вершины стека SP может быть установлен явно, однако при этом должны использоваться только те младшие биты, которые соответствуют глубине стека конкретного используемого микроконтроллера семейства MAXQ. Для микроконтроллеров MAXQ, которые имеют глубину стека 16 слов, используются только 4 младших бита.

Так как стек имеет ширину 16 бит, то в одной ячейке можно сохранять два 8- битных регистра. Это позволяет более эффективно использовать стек для сохранения и восстановления регистров в начале и конце подпрограммы.

SubOne:
    move    PFX[0], IC
    push    PSF           ; сохранение IC:PSF в стеке
    ...
    pop     GR            ; 16- битный регистр
    move    IC, GRH       ; IC был сохранен как старший байт
    move    PSF, GRL      ; PSF был сохранен как младший байт
    ret


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