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

 


По базе:  

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

реклама

 




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




Формат 12: Сложение PC или SP с непосредстенным значением и сохранением результата в регистре общего назначения

Формат 12
Рис. 50. Формат 12

Действие

Команды этой группы выполняют сложение содержимого регистра PC или SP с 10-битной константой без знака, а результат сложения помещают в регистр общего назначения. Синтаксис этих команд в ассемблере приведен в таблице 23.

Табл. 23. Команда загрузки адреса

SP THUMB ассемблер ARM эквивалент Действия
0 ADD Rd, PC, #Imm ADD Rd, R15, #Imm Добавить положительное смещение (255 слов, 1020 байт), заданное в #Imm, к текущему содержимому регистра PC и поместить в регистр Rd результат сложения.
1 ADD Rd, SP, #Imm ADD Rd, R13, #Imm Добавить положительное смещение (255 слов, 1020 байт), заданное в #Imm, к текущему содержимому регистра SP и поместить в регистр Rd результат сложения.

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

Для команды, использующей PC в качестве регистра-источника, бит 1 регистра PC всегда будет прочитан как 0, при этом значение регистра PC должно быть как минимум на 4 байта больше, чем адрес самой команды, тогда бит 1 PC принудительно будет сброшен в 0, что необходимо для выравнивания по границе целого слова.

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

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

Примеры

ADD R2, PC, #572      ; R2 = PC + 572, флаги CPSR не изменяются
                      ; бит [1] регистра PC сбрасывается в ноль.
                      ; Примечание: в код команды будет помещено число 143.

ADD R6, SP, #212      ; R6 := SP (R13) + 212, флаги CPSR не изменяются
                      ; Примечание: в код команды будет помещено число 53


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





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