Q フラグ

ARMv5TE および ARMv6 以降のアーキテクチャには Q フラグがあります。このフラグには、サチュレート算術命令でサチュレーションが発生した場合、たは特定の乗算命令でオーバーフローが発生した場合に 1 が設定されます。

Q フラグはスティッキーフラグです。サチュレート命令および特定の乗算命令で Q フラグをセットすることはできますが、クリアすることはできません。こうした一連の命令を実行した後でフラグをテストすると、それらの命令の実行中に発生したサチュレーションやオーバーフローを検出できるため、1 つの命令を実行するたびにフラグをチェックしなくても済みます。

Q フラグをクリアするには、以下のように、MSR 命令を使用して、APSR に対して読み出し-変更-書き込みの手順を実行します。

    MRS r5, APSR
    BIC r5, r5, #(1<<27)
    MSR APSR_nzcvq, r5

Q フラグの状態を条件コードで直接テストすることはできません。Q フラグの状態を読み出すには、MRS 命令を使用します。

    MRS r6, APSR
    TST r6, #(1<<27); Q フラグが設定された場合、Z はクリアされます。

Show/hide関連項目

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