Цитата(coolibin @ May 3 2012, 17:15)

дело в том, что про псевдо инструкции я читал, но я так и не понял что к чему) может кто нибудь объяснить т. с. на пальцах, что все таки делает данная инструкция? LDR R2, [PC, #xx] что заместо хх ставить?
Загрузить в регистр константу можно двумя способами:
1. Командой MOV
2. Командой LDR
Одной командой MOV загрузить любое значение нельзя. Можно только такое, которое получается циклическим сдвигом любой 8-ми разрядной константы вправо на четное число бит.
Если этого сделать нельзя - можно загрузить константу в несколько приемов (MOV + еще какая-нибудь data-processing команда с еще одним непосредственным операндом).
Либо можно разместить константу (в секции DATA), недалеко от текущего кода, и загружать ее в регистр командой LDR, используя в качестве базовой части адреса текущее значение PC(R15), а смещение задавая непосредственным операндом.
Чтобы избавить программиста от этого геморроя, введена
псевдо-команда LDR. Программист просто указывает, что необходимо загрузить в регистр такую-то константу. Программа-ассемблер сама по ходу дела решает как это лучше сделать - через MOV или через LDR (вместо псевдо-каманды вставляет подходящую инструкцию, если надо LDR - добавляет константу в секцию DATA).