TST、TEQ

ビットテストと等価テストです。

Show/hide構文

TST{cond} Rn, Operand2
TEQ{cond} Rn, Operand2

各パラメータには以下の意味があります。

cond

任意の条件コードを指定します。

Rn

第 1 オペランドを保持する ARM レジスタを指定します。

Operand2

フレキシブル第 2 オペランドを指定します。

Show/hide使用法

これらの命令は、レジスタ内の値を Operand2 に対してテストします。結果に基づいて条件フラグを更新しますが、結果はどのレジスタにも入れません。

TST 命令は Rn の値と Operand2 の値を使用してビットごとの論理積を取ります。結果が破棄されることを除けば、ANDS 命令と同じです。

TEQ 命令は Rn の値と Operand2 の値を使用してビットごとの排他的論理和(XOR)を取ります。結果が破棄されることを除けば、EORS 命令と同じです。

2 つの値が等しいかどうかをテストするには TEQ 命令を使用します。その際、CMP とは異なり、V フラグまたは C フラグに影響することはありません。

TEQ は値の符号をテストするのにも役立ちます。比較後の N フラグは、2 つのオペランドの符号ビットの排他的論理和(XOR)になります。

Show/hideレジスタの制約条件

これらの Thumb 命令では、Rn および Operand2 に SP または PC は使用できません。

これらの ARM 命令では、ARMv6T2 以降、 SP または PC の使用は非推奨です。

ARM 命令には、以下の制約条件が適用されます。

  • Rn に PC(R15)を指定している場合、使用される値は「命令のアドレス + 8」となります。

  • レジスタ制御シフトを行うデータ処理命令の場合は、オペランドに PC は使用できません。

Show/hide条件フラグ

これらの命令では、以下のようになります。

  • 結果に応じて N フラグおよび Z フラグを更新します。

  • Operand2 の計算中に C フラグを更新することが可能です。

  • V フラグは更新しません。

Show/hide16 ビット命令

TST 命令は、Thumb コード内では次の形式で使用できます。これは 16 ビット命令です。

TST Rn, Rm

RnRm は共に Lo レジスタである必要があります。

Show/hideアーキテクチャ

これらの ARM 命令は、ARM のすべてのアーキテクチャで使用できます。

TST Thumb 命令は、Thumb のすべてのアーキテクチャで使用できます。

TEQ Thumb 命令は、ARMv6T2 以降で使用できます。

Show/hide

    TST     r0, #0x3F8
    TEQEQ   r10, r9
    TSTNE   r1, r5, ASR r1

Show/hide誤用例

    TEQ     pc, r1, ROR r0      ; PC とレジスタ制御シフトは
                                ; 一緒に指定できない

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211