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

 
Пересюхтюмя


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





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





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


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





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


Формат 9: Косвенная загрузка/хранение с непосредственным смещением

Формат 9
Рис. 47. Формат 9

Действия

Эти команды выполняют косвенную пересылку байта или целого слова между регистрами и памятью. Синтаксис в ассемблере для этих команд приведен в таблице 20.

Табл. 20. Команды формата 9

L B THUMB ассемблер ARM эквивалент Действия
0 0 STR Rd, [Rb, #Imm] STR Rd, [Rb, #Imm] Записать целое слово из регистра Rd в память по адресу, полученному сложением содержимого регистра Rb и константы Imm.
0 1 LDR Rd, [Rb, #Imm] LDR Rd, [Rb, #Imm] Прочитать целое слово из памяти по адресу, полученному сложением содержимого регистра Rb и константы Imm, и поместить его в регистр Rd.
1 0 STRB Rd, [Rb, #Imm] STRB Rd, [Rb, #Imm] Записать младший байт Rd в память по адресу, полученному сложением содержимого регистра Rb и константы Imm.
1 1 LDRB Rd, [Rb, #Imm] LDRB Rd, [Rb, #Imm] Прочитать байт из памяти по адресу, полученному сложением содержимого регистра Rb и константы Imm, и поместить его в младший байт регистра Rd.

Примечание: Для команд со словарным доступом (B = 0) константа #Imm - это полный 7-битный адрес, у которого биты [1:0] должны быть равны нулю (выравнивание по границе целого слова). При этом ассемблер при формировании команды фактически выполнить деление на 4 (#Imm >> 2), чтобы получить верное значение поля 5-битного смещения.

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

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

Примеры

LDR R2, [R5,#116]   ; Загрузить в R2 слово, расположенное по адресу,
                    ; полученному после сложения содержимого R5 и числа 116.
                    ; Примечание: в код команды будет помещено число 29.
STRB R1, [R0,#13]   ; Записать младший байт R1 в память по адресу R0+13.
                    ; Примечание: в код команды будет помещено число 13.


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