سؤال

للرجوع اليها، الرمز هو موتورولا 68008.

قل لدي رمز مثل ما يلي:

org 200
sequenceO: ds.b 5
sequenceN: ds.b 5

move.w #sequenceO, A0
move.w #sequenceN, A1
  1. هل أنا صحيح في التفكير بأن A0 سيعقد القيمة 200 و A1 القيمة 205؟

  2. واحدة من أسئلة الامتحانات في الورقة السابقة كانت: "ما هي العناوين المادية للتسلسل والتسديدة؟"، هل ستكون الجواب "200 و 205"، أو سيكون "200-204 و 205-209"؟

  3. رأيت بضعة قطع من التعليمات البرمجية مع توجيهات متعددة الأورغ، على سبيل المثال؛

    ORG 100.

    Array1: D.B 4

    ORG 300.

هل أنا في الاعتقاد بأن آخر توج من توجيه ORG يتبع، على سبيل المثال في هذه الحالة، يشير Array1 إلى 300؟

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

المحلول

  1. نعم، هذا يبدو صحيحا. عنوان sequenceN هو 5 بايت بعد sequence0.
  2. "هذا يعتمد"، أعتقد ... لأنه "عناوين" في صيغة الجمع، أعتقد أنهم يريدون النطاق بأكمله، وفي هذه الحالة يكون إجابتك الأخيرة صحيحة.
  3. لا، كنت أتوقع المتعدد orgS للتقديم فقط إلى التعليمات البرمجية بعدها، لذلك في هذه الحالة array1 سيكون عند 100 دولار. نظرا لعدم وجود رمز أو جيل بيانات يحدث بعد الأخير org, ، يتم تجاهلها أساسا من قبل المجمع.

نصائح أخرى

أفترض أن "ORG" تعني "الأصل" - العنوان الأول الذي سيتم تعيينه للرمز أو شريحة البيانات التي يتم تنشيطها.

  1. نعم، 200 و 205

  2. يبدأ التسلسل 0 في 200 ويمتد لمدة 5 بايت إلى 204

  3. لا، يبدأ Array1 في 100، أي شيء بعد أن تبدأ شركة ORG 300 عند 300

أنت تستخدم: MOVE.W #sequenceO, A0

لذلك، أنت تقوم بتحميل الكلمة السفلى فقط (16 بت) من العنوان A0. وبعد هذا سوف يعمل فقط في ذاكرة منخفضة جدا ( A0 تحت $00010000)

بشكل عام باستخدام MOVE.W على سجل العنوان يحصل صعبة.

يحاول: LEA #sequence0, A0 (تحميل عنوان 32 بت A0)

معظم المجمعين سوف تفعل أيضا:

MOVEA.L #sequence0, A0

شكرا، ديف صغير

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top