Цитата
А если написать LDR Rn, [PC], #8 и в нужное место вставить константу - такое не практикуется? По аналогии с DEC: MOV Rn, (PC)+
Тогда и выборка не нарушится. Может в ассемблере есть соответствующие средства для такой записи?
Такой случай там описан в документации:
Цитата
Load and Store Word or Unsigned Byte - Immediate pre-indexed
....
Syntax
[<Rn>, #+/-<offset_12>]!
....
Use of R15 Specifying R15 as register Rn has UNPREDICTABLE results.
Так что нельзя.
Цитата
Значит адреса всех переменных должны храниться в памяти команд? Че-то не то...
Так и есть.
Цитата
Ну, это частный случай кэшированного процессора, если можно так выразиться.
Случай-то частный, но отсутствие загрузки любых непосредственных операндов не позволяет, например, простыми средствами (без внутренних кешей) выполнять код из внешней SDRAM без дикой потери производительности. А вот AVR32 даже в инкарнации AT32UC3A0512 - вполне. Дует себе в burst-режиме и все пучком.
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин