هل بايت/كلمات/عناوين موقعة أو غير موقعة في Z80 Assembler/Machine Code؟

StackOverflow https://stackoverflow.com/questions/3702171

سؤال

أقوم بعمل محاكي لثنائيات Z80 ، لكن لا يمكنني معرفة ما إذا كانت جميع أنواع بيانات عدد صحيح موقعة أو غير موقعة من الدليل أو من جوجل. وكذلك أرقام السجلات A,B...HL,BC وما إلى ذلك موقعة أم لا؟

أيضًا ، في رمز الجهاز ، البايت/الكلمات/العناوين التي تأتي بعد الإرشادات كوسائط موقعة أو غير موقعة؟

كما في هذه الأمثلة (من مجموعة تعليمات 8080/Z80):

8080 Mnemonic    Z80 Mnemonic    Machine Code    Operation
-------------    ------------    ------------    ---------
MVI A,byte       LD  A,byte      3Ebyte          A <- byte
LXI B,word       LD  BC,word     01word          BC <- word
JMP address      JP  address     C3address       PC <- address

شكرا مقدما.

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

المحلول

  1. يمكن أن تحتوي السجلات على إما ، ومعظم المعاملات تحسب كلتا الإجابات في نفس الوقت بسبب متمم ثنائي. ومع ذلك ، تحتاج بعض التعليمات إلى معلومات ما إذا كانت القيمة المحتوية موقعة أو غير موقعة. وهي موجودة في شكلين ، واحد لتوقيع وواحد لأحد غير موقعة. لا يمكن أن تتذكر ما إذا كان Z80 لديه أي من هذه.

  2. انظر (1.) العناوين المطلقة غير موقعة ويتم توقيع العناوين النسبية (الفروع) ، لتكون قادرة على القفز للخلف.

نصائح أخرى

AKAIK ، لا تحتوي بيانات لغة التجميع وتعليمات النقل على معلومات علامة. تحدد كل من عمليات البيانات ونقل حجم البيانات فقط. معلومات التوقيع هي جزء من بعض التعليمات ، مثل تعليمات الضرب الموقعة/غير الموقعة. لذلك ، يمكن التعامل مع نفس السجل من خلال تعليمات IMUL باعتبارها عددًا صحيحًا موقّعًا ، وتعليمات MUL كمعديد غير موقّع.

في العديد من الآلات ، فإن الاختلافات الوحيدة بين الأرقام الموقعة وغير الموقعة هي الطريقة التي يتم بها إجراء مقارنات الحجم ، والطريقة التي يتم بها تحويل القيم الأقصر إلى أوقات أطول (لاحظ أن العديد من عمليات المعالجات تعقل بشكل فعال أنواعًا أقصر إلى أنواع أطول ، ويؤدي التقسيم بطبيعته مقارنات الحجم). عند إجراء أي نوع من العمليات بخلاف تلك المذكورة أعلاه ، يتم التعامل مع المعاملات الموقعة وغير الموقعة على وجه التحديد (قليلاً مقابل) بنفس الطريقة ، لذلك ليست هناك حاجة لتمييزها.

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