سؤال

كيف يمكنك إضافة سجل 16 و 8 بت بحمل (على سبيل المثال، HL، و A)؟

هل كانت مفيدة؟

المحلول

لا يمكنك أن تفعل ذلك مباشرة. تحتاج إلى نسخ A إلى زوج سجل 16 بت ثم قم بإضافة:

LD  B, 0
LD  C, A
ADC HL, BC

نصائح أخرى

أود أن أشير إلى أن الاستجابة المحددة (بواسطة كارل Norum) صحيحة، ولكن ليس أفضل إجابة. ويبين ما يلي سرعة الاستراتيجيتين مع دورات الساعة. باستخدام الحل الصحيح يحفظ الوقت، ولن تدمر زوج تسجيل 16 بت الثاني.

  4   ld c,a            4   add a,l
  7   ld b,0            4   ld l,a
  11  add hl,bc         4   adc a,h
                        4   sub l
                        4   ld h,a

ومع ذلك، فإن الحل على اليمين يأخذ بايت إضافية من التعليمات البرمجية.

من عند http://nemesis.lonestar.org/computers/tandy/software/apps/m4/qd/opcodes.html.

Add Byte with Carry-In Instructions
8080 Mnemonic Z80 Mnemonic  Machine Code Operation
ADC  M        ADC A,(HL)    8E           A <- A + (HL) + Carry
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top