Формат 7: Косвенная загрузка/хранение с регистровым смещением
Рис. 45. Формат 7
Действия
Эти команды выполняют передачу байта или целого слова между регистрами и памятью с пре-индексной адресацией и смещением, заданным в регистре 0…7. Синтаксис в ассемблере для этих команд приведен в таблице 18.
Табл. 18. Команды формата 7
L |
B |
THUMB ассемблер |
ARM эквивалент |
Действия |
0 |
0 |
STR Rd, [Rb, Ro] |
STR Rd, [Rb, Ro] |
Пред-индексная запись слова в память: Вычислить адрес ячейки памяти посредством сложения содержимого регистров Rb и Ro. Слово из Rd поместить в память по этому адресу. |
0 |
1 |
STRB Rd, [Rb, Ro] |
STRB Rd, [Rb, Ro] |
Пред-индексная запись байта в память: Вычислить адрес ячейки памяти посредством сложения содержимого регистров Rb и Ro. Младший байт из Rd поместить в память по этому адресу. |
1 |
0 |
LDR Rd, [Rb, Ro] |
LDR Rd, [Rb, Ro] |
Пред-индексное чтение слова из памяти: Вычислить адрес ячейки памяти посредством сложения содержимого регистров Rb и Ro. Прочитать слово из ячейки памяти по этому адресу и разместить его в регистре Rd. |
1 |
1 |
LDRB Rd, [Rb, Ro] |
LDRB Rd, [Rb, Ro] |
Пред-индексное чтение байта из памяти: Вычислить адрес ячейки памяти посредством сложения содержимого регистров Rb и Ro. Прочитать байт из ячейки памяти по этому адресу и разместить его в регистре Rd. |
Число машинных тактов при выполнения команд
Все команды этого формата эквивалентны командам в режиме ARM согласно таблице 18. Число машинных тактов выполнения этой команды в режиме THUMB идентично с числом тактов выполнения ее в режиме ARM. Примечание: для более подробной информации см. соответствующую главу.
Примеры
STR R3, [R2,R6] ; Записать слово из регистра R3 по адресу R2+R6
LDRB R2, [R0,R7] ; Прочитать байт из памяти по адресу R0+R7 и записать в R2.
|
|