Формат 12: Сложение PC или SP с непосредстенным значением и сохранением результата в регистре общего назначения
Рис. 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
|
электромеханические турникеты: поворотные, полноростовые, полуростовые
|