08.11.2014 Views

RealView Compilation Tools アセンブラガイド - ARM Information Center

RealView Compilation Tools アセンブラガイド - ARM Information Center

RealView Compilation Tools アセンブラガイド - ARM Information Center

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>ARM</strong> 命 令 と Thumb 命 令<br />

Thumb 命 令 の 場 合 :<br />

• Rd、 Rt、 および Rt2 のいずれのパラ メータにも r13 は 指 定 でき ません。<br />

• LDREXD では、 Rt と Rt2 に 同 じ レジス タは 指 定 でき ません。<br />

• offset には、 0 ~ 1020 の 範 囲 内 にあ る 4 の 倍 数 を 指 定 でき ます。<br />

使 用 法<br />

LDREX 命 令 と STREX 命 令 を 使 用 し て、 マルチプ ロ セ ッ サの 共 有 メ モ リ シ ス テム<br />

でプロセス 間 通 信 を 実 装 できます。<br />

パフ ォーマン ス 上 の 理 由 か ら、 対 応 する LDREX 命 令 と STREX 命 令 の 間 に 記 述 す<br />

る 命 令 の 数 は 最 小 限 に 抑 えて 下 さい。<br />

注<br />

STREX 命 令 で 使 用 されるアドレスは、 直 前 に 実 行 された LDREX 命 令 で 使 用 さ れ<br />

たア ド レ ス と 同 一 であ る 必 要 があ り ます。 異 なるア ド レ スに 対 して STREX 命 令<br />

を 実 行 する と 、 その 結 果 は 予 測 不 可 能 にな り ます。<br />

アーキテクチャ<br />

<strong>ARM</strong> LDREX と STREX は <strong>ARM</strong>v6 以 降 で 使 用 で き ます。<br />

<strong>ARM</strong> LDREXB、 LDREXH、 LDREXD、 STREXB、 STREXD、 および STREXH は <strong>ARM</strong>v6K 以 降 で<br />

使 用 で き ます。<br />

これらの 32 ビッ ト Thumb 命 令 はどれも <strong>ARM</strong>v6T2 以 降 で 使 用 で き ます。 ただ<br />

し、LDREXD と STREXD は <strong>ARM</strong>v7-M プロファイルでは 使 用 できません。<br />

これらの 命 令 の 16 ビッ トバージョンはありません。<br />

サンプル<br />

MOV r1, #0x1<br />

; load the ‘lock taken’ value<br />

try<br />

LDREX r0, [LockAddr] ; load the lock value<br />

CMP r0, #0<br />

; is the lock free?<br />

STREXEQ r0, r1, [LockAddr] ; try and claim the lock<br />

CMPEQ r0, #0<br />

; did this succeed?<br />

BNE try<br />

; no – try again<br />

.... ; yes – we have the lock<br />

4-42 Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0204IJ<br />

Non-Confidential

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!