刘帅嵌入式系统-数据处理指令操作数寻址方式之寄存器逻辑左移寻址 续

寄存器逻辑左移:<Rm>, LSL <Rs>

指令编码格式:

指令操作数的生成方式和之前提到的逻辑左移的方式相同,但移位的位数是由寄存器<Rs>中的低八位[7:0]决定。

当Rs[7:0] = 0时,指令的操作数<shiter_operand>为寄存器Rm的值,循环器的进位值<Carry_out 位>是CPSR的C位条件标志

当Rs[7:0] > 0 && Rs[7:0] < 32时,指令操作数<shiter_operand> 是寄存器 Rm的值逻辑左移Rs[7:0]位,循环器的进位值<Carry_out 位>是Rm最后被移出的位Rm[32 - Rs[7:0]]。

当Rs[7:0] = 32 时,指令操作数<shifter_operand> 为0,循环器的进位值是Rm[0]

Rs[7:0] > 0 时,指令的操作数<shiter_operand> 为0,循环器进位值为0

指令操作数的语法格式和标题相同:<Rm>, LSL <Rs>

需要注意的是:

当R15(PC指针)用作Rn、Rm、Rd和Rs时,会产生不可预知的后果。

猜你喜欢

转载自blog.csdn.net/shuai532209720/article/details/88372997