私はi386アーキテクチャでAT&T表記を使用してプログラミングしています。
1つの命令を使用して、キャリー、オーバーフロー、およびサインフラグを設定するために、2つの8ビット数を追加することは可能add
ですか?
この旗の組み合わせは無理だと思います。SフラグをOフラグと一緒に設定するには、両方の数値の最上位ビットが0であり、結果の最上位ビットが1である必要があります。最上位ビットの加算からキャリーを生成します。
このサイトで質問するのは初めてですので、何かおかしなことがあったらお詫び申し上げます。前もって感謝します。
編集:私は次の3つの指示しか使用できません:
movb $_, %ah
movb $_,%al
addb %ah,%al
2つのアンダースコアを10進値で変更する必要があります。
編集:CF、OF、SF、およびZFのうち、CF、OF、およびSFのみを設定できます。キャリーフラグを設定できません。
(編集者注:その最後の文は意味がありません。それは、パリティまたはゼロフラグのタイプミスですか、それともCFを前に設定できないことを意味しaddb
ますか?それadd
は、ではなくadc
、以前のフラグの状態に依存しません。回答が得られない可能性のある古い質問であるため、コメントで説明を要求するのではなく、これを編集として残します。「キャリーフラグを設定できません」に関する文を修正する場合は、このメモを編集してください。