Z80: كيفية إضافة سجلات 16 و 8 بت؟
سؤال
كيف يمكنك إضافة سجل 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
لا تنتمي إلى StackOverflow