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.

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

7.5.1 FRAME ADDRESS<br />

FRAME ADDRESS ディレクティブは、 後 続 の 命 令 の 標 準 構 造 フレームアドレスの<br />

計 算 方 法 を 記 述 し ます。 このディレクティブは、FUNCTION ディレクティブと<br />

ENDFUNC デ ィ レ ク テ ィ ブを 含 む 関 数 ま たは PROC ディレクティブと ENDP ディレク<br />

テ ィ ブを 含 む 関 数 でのみ 使 用 で き ます。<br />

構 文<br />

FRAME ADDRESS reg[,offset]<br />

各 項 目 には 以 下 の 意 味 があ り ます。<br />

reg<br />

offset<br />

標 準 構 造 フ レームア ド レ スのベース と な る レ ジ ス タ を 指 定 し ま<br />

す。 関 数 で 別 のフ レームポ イ ン タ を 使 用 し ない 限 り 、 こ のレ ジ ス<br />

タが sp にな り ます。<br />

reg か ら 標 準 構 造 フ レームア ド レ ス までのオフセ ッ ト を 指 定 し ま<br />

す。 offset がゼロの 場 合 は 省 略 でき ます。<br />

使 用 法<br />

FRAME ADDRESS デ ィ レ ク テ ィ ブは、 コー ド に よ って 標 準 構 造 フ レームア ド レ ス<br />

のベース と な る レ ジ ス タ が 変 更 さ れる 場 合 ま たはレ ジ ス タ か ら 標 準 構 造 フ<br />

レーム ア ド レ ス までのオフセ ッ ト が 変 更 さ れる 場 合 に 使 用 し ます。 FRAME<br />

ADDRESS デ ィ レ ク テ ィ ブは、 標 準 構 造 フ レームア ド レ スの 計 算 方 法 を 変 更 する<br />

命 令 の 直 後 に 使 用 する 必 要 があ り ます。<br />

注<br />

コードでレジスタを 保 存 してスタ ッ クポインタを 変 更 する 1 つの 命 令 を 使 用<br />

する 場 合 、 FRAME ADDRESS と FRAME SAVE の 両 方 を 使 用 する 代 わ り に FRAME PUSH を<br />

使 用 で き ます (「FRAME PUSH」 (ページ 7-52) を 参 照 )。<br />

また、 コードでレジスタをロードしてスタックポインタを 変 更 する 1 つの 命<br />

令 を 使 用 する 場 合 は、FRAME ADDRESS と FRAME RESTORE の 両 方 を 使 用 する 代 わ り に<br />

FRAME POP を 使 用 できます (「FRAME POP」 (ページ 7-50) を 参 照 )。<br />

例<br />

_fn FUNCTION ; CFA (Canonical Frame Address) is value<br />

; of sp on entry to function<br />

PUSH {r4,fp,ip,lr,pc}<br />

FRAME PUSH {r4,fp,ip,lr,pc}<br />

7-48 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!