RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
RealView Compilation Tools ã¢ã»ã³ãã©ã¬ã¤ã - ARM Information Center
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>ARM</strong> 命 令 と Thumb 命 令<br />
4.11 Thumb での 命 令 の 幅 の 選 択<br />
<strong>ARM</strong>v6T2 以 降 のプ ロ セ ッ サの Thumb コードを 書 く と き、 命 令 の 中 には 16<br />
ビッ トエンコーディングと 32 ビッ トエンコーディングのどちらでも 使 用 でき<br />
るものがあります。 ど ち ら も 可 能 な 場 合 、 アセンブ ラ は 通 常 16 ビットエン<br />
コーディ ングを 生 成 します ( 例 外 については、 「「 異 な る 動 作 を 持 つ 命 令 」」<br />
を 参 照 )。<br />
4.11.1 命 令 の 幅 の 指 定 子 : .W と .N<br />
アセンブ ラ の こ の 動 作 を 制 御 する には .W 幅 指 定 子 を 使 用 し ます。 これは 16<br />
ビ ッ ト エン コーデ ィ ン グが 使 用 で き る 場 合 で も 32 ビッ トエンコーディングが<br />
使 用 さ れる よ う に し ます。<br />
.W 指 定 子 は <strong>ARM</strong> または Thumb (<strong>ARM</strong>v6T2 以 降 ) コー ド にアセンブルする 可<br />
能 性 のあ る コー ド で 使 用 で き ます。 .W 指 定 子 は <strong>ARM</strong> コード と してアセンブル<br />
する と きには 無 視 されます。<br />
確 実 に 16 ビッ トでエンコードされるようにするには、.N 幅 指 定 子 を 使 用 で き<br />
ます。 この 場 合 、 16 ビッ トでエンコードできない 命 令 に 対 して 使 用 された 場<br />
合 や <strong>ARM</strong> コード と してアセンブルする と き、 エラーが 出 ます。<br />
命 令 の 幅 指 定 子 は、 命 令 ニーモニ ッ ク と 条 件 コー ド ( 存 在 する 場 合 ) の 直 後<br />
に 置 き ます。 次 に 例 を 示 し ます。<br />
BCS.W label ; forces 32-bit instruction even for a short branch<br />
B.N label : faults if label out of range for 16-bit instruction<br />
4.11.2 異 なる 動 作 を 持 つ 命 令<br />
参 考 と し て、 32 ビ ッ ト 命 令 が 使 用 でき る ターゲ ッ ト で 失 敗 が 発 生 し て も、 .W<br />
指 定 な し の LDR、 ADR、 およびB が 常 に 16 ビ ッ ト 命 令 を 生 成 し ます。<br />
外 部 参 照 では、 LDR および B に .W が 指 定 されていな く て も 常 に 32 ビット 命 令<br />
が 生 成 されます。<br />
<strong>ARM</strong> DUI 0204IJ Copyright © 2002-2008 <strong>ARM</strong> Limited. All rights reserved. 4-159<br />
Non-Confidential