GNU ARM汇编---MOV

格式:MOV{条件}{S} <dest>, <op 1> dest = op_1

说明MOV从另一个寄存器、被移位的寄存器、或一个立即值装载一个值到目的寄存器。

        你可以指定相同的寄存器来实现 NOP 指令的效果,你还可以专门移位一个寄存器:

 MOV     R0, R0                  ; R0 = R0... NOP 指令
 MOV     R0, R0, LSL#3           ; R0 = R0 * 8

       如果 R15 是目的寄存器,将修改程序计数器或标志。这用于返回到调用代码,方法是把连接寄存器的内容传送到 R15:

  MOV     PC, R14                 ; 退出到调用者
  MOVS    PC, R14                 ; 退出到调用者并恢复标志位

注意:在ARM汇编中,立即数只能是一个8位数(比如0xFF),或者是一个可以通过8位数移位得到的数(比如0x0FF0)。
     如果立即数比如 (0x12345678)不满足上述要求,则需要通过伪指令LDR来实现数据搬运。
        LDR操作通过DCD来实现这个功能,通俗的理解就是编译器将这个数放 到一个地方(通常在一个.O文件的末尾),
        然后通过PC相对寻址将这个数存入寄存器,间接达到mov的功能。

posted @ 2012-08-23 15:41  Kozo  阅读(332)  评论(0编辑  收藏  举报

坚持到底