刘帅嵌入式系统-数据处理指令操作数寻址方式之立即数寻址
立即数寻址方式 #<immediate>
指令编码格式如下图所示:
rotate_imm:4位循环右移值。即之前所提到的公式中的移位数。
immed_8:8位常数。参照下面的立即数公式。
指令操作数<shiter_operand>即为立即数#<immediate>,立即数#<immediate>的生成方式之前已经介绍,不在赘述。当rotate_imm = 0时,循环器的进位值(即Carry-out位)为CPSR中的C条件标志;当rotate_imm != 0时,循环器的进位值(即Carry-out位)为操作数<shiter_operand>的最高为bit[31]。
指令中操作数寻址操作的伪代码如下:
shifter_operand = imme_8 Rotate_Right (rotate_imm * 2)
if rotate_imm == 0 then
shifter_carry_out = C flag
else
shifter_carry_out =shifter_operand[31]
立即数的合法性和编码规则,请查看之前文章中介绍。
示例:
MOV R0 , #0xFC0 ;R0=0xFC0