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

 
Пересюхтюмя


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





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





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


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





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


Формат 14: Поместить/извлечь регистры из стека

Формат 14
Рис. 52. Формат 14

Действие

Команды этой группы позволяют одновременно регистры 0…7 и опционально регистр LR разместить (push) в вершине стека, и регистры 0…7 и опционально регистр PC извлечь (pop) из вершины стека. Синтаксис этих команд в ассемблере приведен в таблице 25.

Табл. 25. Команды размещения / извлечения регистров из стека

L R THUMB ассемблер ARM эквивалент Действия
0 0 PUSH { Rlist } STMDB R13!, { Rlist } Разместить в вершине стека регистры из списка Rlist, соответственно обновив указатель на вершину стека.
0 1 PUSH { Rlist, LR } STMDB R13!, { Rlist, R14 } Разместить в вершине стека регистры из списка Rlist (если не пустой) и регистр ссылки LR, соответственно обновив указатель на вершину стека.
1 0 POP { Rlist } LDMIA R13!, { Rlist } Извлечь из вершины стека регистры из списка Rlist, соответственно обновив указатель на вершину стека.
1 1 POP { Rlist, PC } LDMIA R13!, { Rlist, R15 } Извлечь из вершины стека регистры из списка Rlist и затем регистр PC, соответственно обновив указатель на вершину стека.

Число машинных тактов при выполнении команд

Все команды этого формата эквивалентны командам в режиме ARM согласно таблице 25. Число машинных тактов выполнения этой команды в режиме THUMB идентично с числом тактов выполнения ее в режиме ARM. Примечание: для более подробной информации см. соответствующую главу.

Примеры

PUSH {R0-R4,LR}   ; Поместить в стек регистры R0,R1,R2,R3,R4 и R14 (LR)
                  ; обновив соответственно указатель на вершину стека R13 (SP).
                  ; Эта команда удобна для вызова подпрограмм, 
                  ; давая возможность сохранить необходимые рабочие регистры 
                  ; и адрес возврата из самой подпрограммы.
POP  {R2,R6,PC}   ; Извлечь из стека регистры R2,R6 и R15 (PC)
                  ; обновив соответственно указатель на вершину стека R13 (SP).
                  ; Эта команда удобна для возврата из подпрограмм,
                  ; давая возможность восстановить необходимые рабочие регистры 
                  ; и из подпрограммы в то место, откуда она была вызвана.


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