0

ADC の機能は理解できましたが、キャリー フラグの管理方法がわかりません。通常の ADD を使用してオーバーフローした場合、キャリー フラグは自動的に 1 に設定されますか? また、ADC を使用し、CF が 1 でオーバーフローしない場合、CF は 0 に設定されますか? ありがとう。

4

2 に答える 2

1

intel x86 アセンブラを想定すると、ADD と ADC の両方が上位ビットのキャリーまたはボローでキャリー フラグを設定し、それ以外の場合はクリアされます。

CF が 1 でオーバーフローがない場合に ADC を使用すると、CF=0 になります。

于 2013-11-10T19:51:04.870 に答える
0

詳細については、www.intel.comの公式リファレンスの498 ページを参照してください。

説明 デスティネーション オペランド (第 1 オペランド)、ソース オペランド (第 2 オペランド)、キャリー (CF) フラグを加算し、結果をデスティネーション オペランドに格納します。デスティネーション オペランドは、レジスタまたはメモリ位置にすることができます。ソース オペランドは、イミディエート、レジスタ、またはメモリ ロケーションのいずれかです。(ただし、1 つの命令で 2 つのメモリ オペランドを使用することはできません。) CF フラグの状態は、前の加算からのキャリーを表します。即値がオペランドとして使用される場合、デスティネーション オペランド フォーマットの長さに符号拡張されます。[...]

于 2013-11-10T20:00:07.513 に答える