Test-and-Branch(テスト-分岐)マクロのサンプル

すべてのプロセッサの ARM コードおよび ARMv6T2 より前のプロセッサの Thumb コードで Test-and-Branch(テスト-分岐)操作を行うには、2 つの命令を実装する必要があります。

以下のようなマクロを定義できます。

        MACRO
$label  TestAndBranch  $dest, $reg, $cc
$label  CMP     $reg, #0
        B$cc    $dest
        MEND

MACRO ディレクティブの後の行はマクロプロトタイプステートメントです。マクロプロトタイプステートメントは、マクロの呼び出しに使用する名前(TestAndBranch)を定義します。また、パラメータ$label$dest$reg、および $cc)も定義しています。指定されていないパラメータは空の文字列に置き換えられます。このマクロでは、構文エラーを防ぐために $dest$reg、および $cc に値を指定する必要があります。アセンブラは、コード内で指定された値でパラメータを置き換えます。

このマクロは、以下のように呼び出すことができます。

test    TestAndBranch    NonZero, r0, NE
         ...
         ...
NonZero

代入後には以下のようになります。

test    CMP     r0, #0
        BNE     NonZero
         ...
         ...
NonZero

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0473FJ
Non-ConfidentialID111311