Здравствуйте.
Пробую разобратся с сабжем. И тут у меня возник вопрос следующего типа.
Есть 2 комманды :
1) ADD R0, R0, R0;
2) ADD R0, R0, LSL #0
Если я пробую их записать в двоичной форме, согласно ARM Architecture Reference Manual, у меня получается, что они идентичны бит в бит.
т.е. Код операции у них одинаковый (ADD или 0000); Rd и Rs также нули. Меня смущает запись в параметре Operand2. Согласно вышеуказаному документу Operand2 для первого случая состоит из битов [11:4], которые забиты нулями и поля Rm (4 биты), куда я полагаю вносяться также нули. Operand2 для второго случая состоит из поля shift_imm (5 битов), трёх битов забитых нулями и поля Rm (4 биты), куда как я понимаю тоже надо записать нули... Вот тут я и стопорюсь. Что не так?