12.07.2015 Views

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

RealView Compilation Tools コンパイラユーザガイド - ARM ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

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

イ ン ラ イ ンアセン ブ ラ と 組 み 込 みアセン ブ ラの 使 用各 関 数 の 先 頭 にあ る 組 み 込 みアセンブ ラ の 状 態 は、 #pragma arm プラグマおよび #pragma thumb プラ グマで 変 更 された よ う に、 コ ンパイ ラの 呼 び 出 しで 設 定されています。組 み 込 みアセンブ ラ の 状 態 は、 関 数 内 部 で も 変 更 で き ます。 こ れを 行 う には、組 み 込 みアセンブ ラ 関 数 で、 <strong>ARM</strong>、 THUMB、 または CODE16 ディレクティブを 明 示的 に 使 用 し ます。 これらのディレクティブを __asm 関 数 内 で 使 用 し て も、 後 続の __asm 関 数 の 状 態 (<strong>ARM</strong> か Thumb か) には 影 響 し ません。Thumb-2 対 応 のプ ロ セ ッ サ 用 にコ ンパ イルを 実 行 し てい る 場 合 は、 Thumb 状態 で Thumb-2 命 令 を 使 用 で き ます。注パ ラ メ ータ リ ス ト 内 に 引 数 名 を 指 定 する こ と がで き ますが、 こ れら の 引 数 名は 組 み 込 みアセンブ リ 関 数 の 本 体 内 では 使 用 で き ません。 例 えば、 以 下 の 関数 では、 関 数 の 本 体 で 整 数 i が 使 用 されていますが、 アセンブ リ ではこの 整数 は 無 効 と な り ます。__asm int f(int i){ADD i, i, #1 // error}例 えば、 このよ う な 場 合 は、 i の 代 わ り に r0 を 使 用 する こ とができますC や C++ の ソース 内 で 使 用 する 組 み 込 みアセンブ リ 言 語 の 詳 細 については、『デベロ ッ パガ イ ド 』 の C、 C++、 およびアセンブリ 言 語 の 混 用 に 関 する 章 を参 照 し て 下 さ い。組 み 込 みアセンブ ラの 例例 7-1 に、 組 み 込 みアセンブ ラルーチン と し ての 文 字 列 コ ピールーチン を 示します。例 7-1 組 み 込 みセンブ ラ を 使 用 し た 文 字 列 のコ ピー#include __asm void my_strcpy(const char *src, char *dst){loopLDRB r2, [r0], #1STRB r2, [r1], #1CMP r2, #07-20 Copyright © 2002-2010 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DUI 0205IJNon-Confidential, ID 100419

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

Saved successfully!

Ooh no, something went wrong!