arm__ mov立即数



MOV指令的用法是 
   MOV{S}  Rd,  <Operand2>
operand2有多种形式,其中的一种就是"imm8m",对应 “ MOV{S},  Rd,  #<imm8m>”
而"imm8m"的意思是:
ARM:32 位常数,由 8 位值向右循环移偶数位生成。
Thumb:32 位常数,由 8 位值左移任意位生成

指令替换与补充
以下指令对: ADD 和 SUB, ADC 和 SBC, AND 和BIC, MOV和 MVN, CMP 和 CMN是相似的,除了Op2的取反和移位。

如果一个 #imm8_r 的值不能被表示,ARM编译器会将这个常数取反或移位 。如果变形后的常数可以表示成一个#imm8_r ,

那后面将会自动加上一些补充的指令将原来的数还原出来。

所以会编译成 MVN       R0,#0xA0000004

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值