5

Intelの808616ビットフラグレジスタの「OF」フラグと「TF」フラグを直接「設定」または「クリア」するためのアセンブリ命令はありますか?そうでない場合は、どの擬似コードを使用する必要がありますか?

4

1 に答える 1

8

http://en.wikipedia.org/wiki/Trap_flag

8086 には、トラップ フラグを直接設定またはリセットする命令はありません。これらの操作は、フラグ レジスタをスタックにプッシュし、トラップ フラグ ビットをプログラマが望むものに変更し、フラグ レジスタをスタックからポップすることによって行われます。トラップ フラグを設定する手順は次のとおりです。

PUSHF ; Push flags on stack
MOV BP,SP  ; Copy SP to BP for use as index
OR WORD PTR[BP+0],0100H ; Set TF flag
POPF  ; Restore flag Register

トラップ フラグをリセットするには、前のシーケンスの OR 命令を次の命令に置き換えるだけです。

AND WORD PTR[BP+0],0FEFFH

オーバーフロー フラグを設定およびクリアするには、とを置き換え0100Hて同じことができます。0800H0FEFFh0F7FFh

TF設定する前に、何が行われるかを確認してください。それは罠だ。

于 2012-11-17T08:53:31.043 に答える