ホーム>source

私は ADDC の違いを理解しようとしていますそして ADD 8051マイクロコントローラの手順。

ウィズウィズ ウィズウィズそして

Description: どちらも、値のオペランドをアキュムレータの値に追加し、結果の値をアキュムレータに残します。値オペランドは影響を受けません。ウィズウィズそして ADD ADDC を除いて同じように機能しますオペランドの値とキャリーフラグの値を加算しますが、 ADD 結果にキャリーフラグを追加しません。

ADDCは「結果にキャリーフラグを追加する」方法を教えてください。結果はアキュムレータにありますが、どのようにしてキャリーフラグを追加しますか?

現在、私が見ているように、これらはどのように機能するかです:

<前>ウィズウィズ

これの結果は ADDC ですそして ADDC

ADDCでは、

<前>ウィズウィズ

これの結果は ADD ですそして MOV A, #0xFF ADD A, #0x01

多分私のテストは正しくないか何かです。誰かがADDとADDCの違いを説明できますか?

A = 0x01
あなたの答え
  • 解決した方法 # 1

    キャリーフラグの値です 関連する追加。ウィズウィズ  合計に含めますが、 ADDC  しません。

    ウィズウィズ  X + Y + Carryを ADD に格納 。

    ウィズウィズ  X + Yのみを ADDC X, Y に格納します 。

    これの目的は、マルチワードの「大きな整数」で連鎖加算を可能にすることです。これは、重要度の低いものから最も重要なものまで、各単語を追加することで実現されます。 ADDCを使用すると、前の加算からの桁上げが次に重要なワードに確実に送られます。

  • 解決した方法 # 2

    それぞれのケースで、次の手順を実行します。

    <前>ウィズウィズ

    そして:

    <前>ウィズウィズ

    最初のケースでは、 X が表示されます。  そして2番目の ADD 。キャリーフラグが設定されたとき、 X   ADD A, #0x01 を追加します   ADDC A, #0x01 に追加する値に加えてキャリーフラグ 。

    A = 0x02

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ ios - モーダルビューの背景色を変更する