どのようにフラグをEFLAGSレジスタの値のみを変更するには?

 

免責事項:この記事はブロガーオリジナル記事です、2019-08-23,22:21時42転載元のソースのリンクと、この文を添付してください。
浮き沈みの-----溺れて心----ブログパーク

 

1、(他のフラグに影響を与えないアセンブリ命令のみCFビットの値に影響を与える書き込み

  MOV AX、は0xFF00

  AX、0x0101を追加

 

 図2に示すように、アセンブラ命令を書き込むだけ(他のフラグに影響を与えない)PF位置の値に影響を与えます

   MOV AXを、0x3の

  AX、から0xCを追加

 

 

 図3に示すように、書き込みアセンブラ命令は、(他のフラグに影響を与えない)AFビットの値に影響を与えます

   MOV AX、0xF0が

  AX、0x10のを追加

 

 

免責事項:この記事はブロガーオリジナル記事です、2019-08-23,22:21時42転載元のソースのリンクと、この文を添付してください。
浮き沈みの-----溺れて心----ブログパーク 

 

 図4に示すように、アセンブラ命令はSFビットの値に影響を与えるだけ書き込まれる(他のフラグビットに影響を与えません)

   MOV AXを、0x8000を

   AX、0x1のを追加

 

 図6に示すように、書き込みアセンブラ命令のみのビット値に影響を与える(他のフラグに影響を与えることができません)

   Oビット、考える、もし2つの正の数(すなわち、0×00〜0x7Fの間の数)、それは負の数となるように、一緒に0x7Fのこのラインを交差するように結合し、これら2つの数の値が、 AFビットが変化するようにフラグの変更は必然的に別の角度から添加していない二人の間の正の(すなわち、0×00〜0x7Fの)数、すなわちそれは、明らかである、ビットにAFビットバイトも発生し、つながるサイン、2つの負の数、それ(0x80から〜0xFF)を追加することによって、状況はそれがCビットがそれをオーバーフローし、それは、この問題を解決する方法を、私たちは正の数を引く、コンピュータに大きな負の数を使用することができるようになりますではありません。

  MOV AL、0x80から

  SUB AL、0x10の

 

 

 

 免責事項:この記事はブロガーオリジナル記事です、2019-08-23,22:21時42転載元のソースのリンクと、この文を添付してください。
浮き沈みの-----溺れて心----ブログパーク

おすすめ

転載: www.cnblogs.com/Reverse-xiaoyu/p/11402968.html