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