問題タブ [signed-overflow]

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.

0 投票する
1 に答える
1899 参照

assembly - cmp 0x84,0x30がオーバーフローフラグをトリガーするのはなぜですか?

私はしばらくの間アセンブリで遊んでいて、いくつかのコードを見てきました。ここで、ALは最初に0x84に設定され、次にcmp AL、0x30が使用されます。次に、この命令はオーバーフローフラグをトリガーします。

私が読んだものから、CMPは最初の数値から2番目の数値を減算し、フラグを設定することになっています。その場合、0x84-0x30である必要があり、結果は0x54であり、オーバーフローはありません。

0 投票する
2 に答える
14165 参照

math - Z80 のオーバーフロー フラグとキャリー フラグ

Z80 コアにオペコードの ADD A,r セットを実装する準備が整いました。キャリー フラグとオーバーフロー フラグについて少し混乱がありましたが、それが正しいことを確認するためにコミュニティに投稿したかったのです。

基本的に、私が見る限り、Z80 の ALU は符号付き/符号なし操作を気にせず、ビットを追加するだけです。これは、2 つの 8 ビット値が加算され、加算の結果が 9 ビット値になる場合、キャリー フラグが設定されることを意味します。これには、-20 (11101100) と -40 (11011000) などの 2 つの負の 2 の補数を加算することが含まれます。結果は -60 (11000100) ですが、結果は実際には 9 ビット値 1 1100 0100 になります。 2 つの負の 2 の補数値を加算すると、オーバーフロー条件がない場合でもキャリー フラグが常に設定されます。

次に、この命令のオーバーフローを検出するために、両方のオペランドのビット 7 を XOR し、結果が 10000000 の場合、オーバーフローは絶対にありません。結果が 00000000 の場合、次のようにオーバーフローが発生する可能性があります。符号は同じなので、どちらかのオペランドのビット 7 との加算結果のビット 7 を XOR します。この結果が 10000000 の場合、オーバーフローが発生し、P/V オーバーフロー フラグを設定します。私もここにいるの?

このような複雑な質問で申し訳ありませんが、私は正しいと確信していますが、このロジックに基づいて無数の指示を続ける前に知っておく必要があります. どうもありがとう。

0 投票する
2 に答える
25780 参照

assembly - アセンブリ - キャリー フラグ VS オーバーフロー フラグ

私は次のコードを持っています:

調べてみると、1回目はオーバーフローフラグとキャリーフラグがセットされ、2回目はオーバーフローのみがセットされます。

しかし、理由がわかりません:

  1. 符号なし数では、結果は 143 (8FH) となり、8 ビットの符号なし数 (255 より小さい) に適合します => キャリー フラグを設定しないでください。符号付き数では、結果は 127 です。8 ビットの符号付きに適合し、オーバーフローは設定されません。

どうしたの?ありがとう。

0 投票する
2 に答える
2455 参照

assembly - アセンブリ言語で NEG 命令を実行すると、オーバーフロー フラグが設定されます

NEG 命令がオーバーフロー フラグにも影響するかどうかを知りたいです。変数の値を無効にすることは知っていますが、Overflow フラグに影響するかどうかはわかりませんでした。