問題タブ [eflags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - x86フラグレジスタを直接読み書きする方法は?
私が読んだことから、9つの異なるフラグがあるようです。それらを直接読み取ったり変更したりすることは可能ですか?たとえば、cmp / jmp命令を実行した後にゼロフラグが設定されているかどうかはわかりますが、次のようなことが可能かどうかを尋ねています。
か何か。
また、書くために、手で設定することは可能ですか?
c - キャリーフラグが設定されているかどうかを確認します
インラインアセンブラ[gcc、intel、c]を使用して、操作後にキャリーフラグが設定されているかどうかを確認するにはどうすればよいですか?
assembly - cmp 0x84,0x30がオーバーフローフラグをトリガーするのはなぜですか?
私はしばらくの間アセンブリで遊んでいて、いくつかのコードを見てきました。ここで、ALは最初に0x84に設定され、次にcmp AL、0x30が使用されます。次に、この命令はオーバーフローフラグをトリガーします。
私が読んだものから、CMPは最初の数値から2番目の数値を減算し、フラグを設定することになっています。その場合、0x84-0x30である必要があり、結果は0x54であり、オーバーフローはありません。
assembly - アセンブラ 8086 ステータスフラグ
コマンドの後でステータス フラグを確認したいのですが、間違った値が表示されます。例: 126 と 127 ステータス フラグを追加した後、FFBA (初期 SF 値は FFFF) になりますが、... このコードを実行すると、7112 が返されます。
assembly - アセンブリ - キャリー フラグ VS オーバーフロー フラグ
私は次のコードを持っています:
調べてみると、1回目はオーバーフローフラグとキャリーフラグがセットされ、2回目はオーバーフローのみがセットされます。
しかし、理由がわかりません:
- 符号なし数では、結果は 143 (8FH) となり、8 ビットの符号なし数 (255 より小さい) に適合します => キャリー フラグを設定しないでください。符号付き数では、結果は 127 です。8 ビットの符号付きに適合し、オーバーフローは設定されません。
どうしたの?ありがとう。
assembly - アセンブリ - CMP 後の JG/JNLE/JL/JNGE
JG/JNLE/JL/JNGE
CMP の後に続く指示がわかりません。
たとえば、私が持っている場合:
いつal=101; dl =200
。
私たちが尋ねるものについてjg
?オンal>dl
ですか?またはal-dl>0
?
次のコードで同じ問題:
私たちが何を比較しているのか、何を尋ねているのか理解できませんjg
。
つまり、いつ label1 にジャンプし、いつジャンプしないのかわかりません。
assembly - x86の方向フラグ
で方向フラグがどのように機能するのか理解できませんx86
。私の講義のテキストは、ソースまたはデスティネーションレジスタをインクリメントまたはデクリメントすると言っていますが、その名前では意味がありません。誰かがそれが何をするのか説明できますか?
assembly - キャリービットとオーバーフロービットを使用する理由
組込みシステム入門クラスを受講しています。読んでいると、キャリー ビットとオーバーフロー ビットの実装に関する興味深い質問に遭遇しました。
キャリー ビットとオーバーフロー ビットが何であるかは知っていますが、誰かがキャリー ビットを使用する状況が思い浮かびません。私が考えた理由の1つは、メモリを整列させることでした。誰かがこの問題に光を当てることができますか?
assembly - アセンブリ比較フラグの理解
アセンブラで次のコードスニペットを理解するのに苦労しています。
アセンブラでは、これは次のように記述できます(私の本によると)。これは、一度に1つのフラグのみを参照する「より単純な」ブランチに関して通常使用するjge
命令をエミュレートします。
結果のフラグは次のようになる可能性があることを理解できます:(if(EAX> = 5)):
SF = 0&OF = 0しかし、フラグがどのようになり得るか理解できません:SF = 1&OF = 1?どのような計算がこれを与えますか?
私が何を意味するかを明確にするために:
eaxが負の下限にある場合、5を引くことによって正にオーバーフローする可能性があります。正の上限にある場合、5を引くことによって負にオーバーフローすることはできません。