MOV32 疑似命令

以下のいずれかの値をレジスタにロードします。

MOV32 は常に 2 つの 32 ビット命令、MOVMOVT の対を生成します。この命令対を使用して、32 ビットイミディエート値をロードしたり、32 ビットアドレス空間全体にアクセスしたりすることができます。

Show/hide構文

MOV32{cond} Rd, expr

各パラメータには以下の意味があります。

cond

任意の条件コードを指定します。

Rd

ロード先のレジスタを指定します。Rd に SP と PC は指定できません。

expr

以下のいずれかを指定できます。

symbol

このプログラム領域または別のプログラム領域内のラベルです。

#constant

任意の 32 ビットイミディエート値です。

symbol + constant

ラベルと 32 ビットイミディエート値を組み合わせたものです。

Show/hide使用法

MOV32 疑似命令の主な目的は以下のとおりです。

  • 1 つの命令でイミディエート値を生成できない場合にリテラル定数を生成すること

  • PC 相対アドレスまたは外部アドレスをレジスタにロードすること。このアドレスは、リンカが MOV32 を保持する ELF セクションをどこに配置しても有効です。

    Note

    この方法でロードされたアドレスはリンク時に固定されるため、このコードは位置依存コードになります。

参照されているラベルが Thumb コード内にある場合、MOV32 はアドレスの Thumb ビット(ビット 0)を設定します。

Show/hideアーキテクチャ

この疑似命令は、ARM、Thumb 共に ARMv6T2 以降で使用できます。

Show/hide

     MOV32 r3, #0xABCDEF12   ; 0xABCDEF12 を R3 にロードする
     MOV32 r1, Trigger+12    ; Trigger のアドレスより 12 バイト上位のアドレスを
                             ; R1 にロードする

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211