| |
第2操作数operand2有2种形式
(1) 立即数型——#<32位立即数>
#<32位立即数>是取指为数字常量的表达式。但并不是所有32位立即数都是有效的,有效的立即数必须可由一个8位的立即数循环右移偶数位得到。这个问题再立即数寻址中已有详细的介绍。
(2) 寄存器型——Rm,{#<shift>}
Rm是第2操作数寄存器,可对它进行移位或循环移位。<shift>用来指定移位类型和移位位数。移位位数可以是是5位立即数或寄存器。
汇编格式
根据第2操作数的类型,其汇编格式分为以下2种:
<op>{<cond>}{S}Rd,Rn,#<32位立即数>
<op>{<cond>}{S}Rd,Rn,Rm,{<shift>}
数据处理中R15的使用
R15作为特殊的寄存器,控制程序的运行地址,同时它也作为一般寄存器,但使用时必须注意细节问题。寄存器R15可用源操作数,但不能用来指定移位位数。在使用寄存器指定移位位数的情况下,3个源操作数不能是R15.当R15用作源操作数时,3级流水线操作使得真实PC值为当前指令的地址加8字节。
R15用作目的寄存器时,指令的功能相当于某种形式的转移指令,执行转移到结果对应的地址执行程序,常用来作为子程序返回。
若R15作为目的寄存器且使用了后缀S,即设置了S位,则将当前模式的SPSR拷贝到CPSR,着可能影响到中断使能标志位和处理器操作模式。这种机制自动恢复PC和CPSR,是实现异常返回的标准方式。因为在用户及系统模式没有SPSR,在这2种模式下这种形式的指令无效,如果使用,则指令执行的结果是不可预知的,但汇编器在汇编时并不发生警告。
数据处理指令表如图所示:
凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网