4.13.2. MOV32 伪指令

使用以下项之一加载寄存器:

MOV32 始终生成两个 32 位指令,即一个 MOVMOVT 对。 您可利用它加载任何 32 位常数或访问整个 32 位地址空间。

语法

MOV32{cond} Rd, expr

其中:

cond

是一个可选的条件代码(请参阅条件执行)。

Rd

是要加载的寄存器。 Rd 不能为 sp 或 pc。

expr

可以是下列项之一:

symbol

程序区域中的标签。

constant

任何 32 位常数。

symbol + constant

一个加上 32 位常数的标签。

用法

MOV32 伪指令的主要功能有:

  • 当单个指令中无法生成立即数时,生成文字常数。

  • 将相对于程序的地址或外部地址载入寄存器中。 无论链接器将包含 MOV32 的 ELF 代码段置于何处,该地址始终有效。

    Note

    以这种方式加载的地址在链接时是固定的,因此代码不是 位置无关的。

如果所引用的标签位于 Thumb 代码中,则 MOV32 将会设置该地址的 Thumb 位(位 0)。

体系结构

此伪指令可用于 ARMv6T2 及更高版本中的 ARM 和 Thumb 状态。

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential