問題タブ [carryflag]

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 投票する
2 に答える
686 参照

cuda - CUDA - PTX キャリー伝搬

CUDA PTX に 2 つの 32 ビット符号なし整数を追加したいのですが、キャリーの伝播も処理したいと考えています。以下のコードを使用してそれを実行していますが、結果は期待どおりではありません。
ドキュメントによると、add.cc.u32 d, a, bは整数加算を実行し、キャリーアウト値を条件コード レジスタに書き込みますCC.CF
一方、キャリーインでaddc.cc.u32 d, a, b整数加算を行い、キャリーアウトした値をコンディションコードレジスタに書き込みます。この命令のセマンティクスは. 私も違いなしで試しました。
d = a + b + CC.CFaddc.u32 d, a, b

私の知る限り、結果が変数に収まらない場合はキャリーが発生します。これはここで発生し、符号ビットが破損している場合はオーバーフローしますが、符号なしの値で作業しています。
上記のコードは に追加しようとして0xFFFFFFFFいます0x2が、もちろん結果は 32 ビットに適合しません。なぜ__uaddc(0,0)呼び出し後に 1 を取得しないのですか?

編集

Nvidia Geforce GT 520mx
Windows 7 Ultimate、64 ビット
Visual Studio 2012
CUDA 7.0

0 投票する
3 に答える
1917 参照

assembly - 16ビットバイナリ加算の補助フラグの設定方法

8 ビットの 2 進加算を実行するとき、3 ビット目から 4 ビット目への桁上げがある場合、補助フラグが 1 に設定されることを知っています。しかし、2 つの 16 ビット数の加算はどうでしょうか? 私はウェブ上で明確な答えを見ることができません。

Intel 8086 マイクロプロセッサを勉強しています...

たとえば、0x30a2 と 0xf1ac の 2 つの数字を追加すると、

0011 0000 1010 0010 + 1111 0001 1010 1100

どこで確認すればいいのかわからない