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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ディレクティブリファレンス<br />

使 用 法<br />

別 のオブジェ ク ト フ ァ イル 内 で 定 義 されたシンボルへの リ ン ク 時 に、 シンボ<br />

ル 名 が 解 決 されます。 このシンボルはプログラムのアドレスとして 処 理 され<br />

ます。 [WEAK] が 指 定 さ れていない 場 合 、 対 応 する シンボルが リ ン ク 時 に 検 出 さ<br />

れないと、 リ ンカによ ってエラーが 生 成 されます。<br />

[WEAK] が 指 定 されており、 対 応 するシンボルがリ ンク 時 に 検 出 されない 場 合<br />

は、 以 下 の よ う にな り ます。<br />

• 参 照 が B 命 令 ま たは BL 命 令 のデス テ ィ ネーシ ョ ンであ る 場 合 、 シンボル<br />

の 値 が 次 の 命 令 のア ド レ ス と し て 使 用 されます。 したがって、 この B 命<br />

令 または BL 命 令 は NOP となります。<br />

• それ 以 外 の 場 合 、 シンボルの 値 はゼ ロ と 見 な さ れます。<br />

シンボルの 可 視 性 の 詳 細 については、 www.infocenter.arm.com から 入 手 できる<br />

ABI ドキュメントの 『ELF for the <strong>ARM</strong> Architecture』 を 参 照 して 下 さい。<br />

例<br />

この 例 では、 C++ ラ イ ブ ラ リ が リ ン ク さ れていて、 演 算 結 果 に 基 づいて 条 件<br />

分 岐 が 発 生 する かど う かを 確 認 し ています。<br />

AREA Example, CODE, READONLY<br />

EXTERN __CPP_INITIALIZE[WEAK] ; If C++ library linked, gets the address of<br />

; __CPP_INITIALIZE function.<br />

LDR r0,=__CPP_INITIALIZE ; If not linked, address is zeroed.<br />

CMP r0,#0 ; Test if zero.<br />

BEQ nocplusplus ; Branch on the result.<br />

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

Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!