Команда LDR не такая "тупая", как многим кажется. Если константу удается представить в виде некоторой другой константы со сдвигом, ассемблер на самом деле вставит соответствующий MOV, т.е. реализует это в виде одной команды. А LDR, в общем виде перекладывает эти проблемы с головы программиста на компилятор.
При этом хочется спросить, а какая "половая" разница в выкрутасных командах других RISC от LDR? По любому, в худшем случае 32-битная переменная загрузится за две команды.
|