Цитата(Rst7 @ Jul 9 2009, 16:08)

Обычно некоторый набор констант можно загрузить, используя байтовый иммедитейт и сдвиг. Остальное - LDR по PC+что-то (константы лежат рядом с кодом, а не внутри, так что без автоинкремента).
А если написать LDR Rn, [PC], #8 и в нужное место вставить константу - такое не практикуется? По аналогии с DEC: MOV Rn, (PC)+
Тогда и выборка не нарушится. Может в ассемблере есть соответствующие средства для такой записи?
Допустим я хочу загрузить в регистр адрес переменной из памяти данных для последующего косвенного обращения к ней. Поскольку она находятся в другом сегменте, я не могу это сделать просто прибавляя смещение к счетчику команд. Значит адрес этой переменной должен находиться в памяти команд в том сегменте из которого я к ним обращаюсь? Значит адреса всех переменных должны храниться в памяти команд? Че-то не то...