ما هي طرق العنونة في المعالج الدقيق 8085؟
في هذا المقال، سنتعرف على كيفية وصول المعالج الدقيق (8085) إلى البيانات المخزنة في أجزاء مختلفة من الذاكرة، نحن نعلم أنّ المعالج (8085) يمكنه الوصول إلى البيانات المخزنة في أجزاء مختلفة من الذاكرة باستخدام التعليمات، ولكن كيف يتم الوصول إلى هذه البيانات، هو ما يُعرف باسم وضع العنونة (addressing mode).
لتبسيط الأمور، دعنا نتخيل مستعمرة من المستودعات ذات الأحجام الموحدة في تشكيل شبكي، لكل مستودع رقم مخصص له يسمّى عنوانه (address)، افترض أيضًا أنّ كل مستودع به بعض البضائع، فستكون هذه بياناتنا، ويشار إلى كل منزل والسلع المخزنة فيه باستخدام العنوان.
أثناء كتابة برنامج بلغة التجميع (assembly language) لـ (8085)، سنستخدم طرقًا مختلفة للوصول إلى البيانات المخزنة في الذاكرة والسجلات، هذه تسمّى “أوضاع العنونة”، قد يبدو كل هذا مثيرًا للاهتمام بعض الشيء في البداية، لكن الأمثلة ومقتطفات الكودات المستخدمة هنا ستمكنك من تصور كل شيء.
جزء من مرونة البرمجة لكل معالج دقيق هو عدد وأنواع الطرق المختلفة التي يمكن للمبرمج أن يشير بها إلى البيانات المخزنة في الذاكرة، يشار إلى الطرق المختلفة التي يمكن للمعالج الدقيق من خلالها الوصول إلى البيانات باسم أوضاع العنونة (addressing modes)، طرق العنونة في المعالجات الدقيقة (8085) هي:
- وضع العنونة الفوري في (8085) (Immediate Addressing Mode in 8085).
- وضع العنونة السجل في (8085) (Register Addressing Mode in 8085).
- وضع العنونة المباشر في (8085) (Direct Addressing Mode in 8085).
- وضع العنونة غير المباشر في (8085) (Indirect Addressing Mode in 8085).
- وضع العنونة الضمني في (8085) (Implied Addressing Mode in 8085).
شرح طرق العنونة في المعالج الدقيق 8085:
فيما يلي الأوضاع المختلفة لمعالجة البيانات وأوضاع العنونة المخزنة في الذاكرة، دعونا نلقي نظرة على كل منهم واحدًا تلو الآخر للحصول على صورة واضحة:
وضع العنونة الفوري في المعالج الدقيق 8085:
في أوضاع العنونة الفورية للمعالج الدقيق (8085)، يمكن تحديد بيانات (8) أو (16) بت كجزء من التعليمات، في المعالج الدقيق (8085)، تندرج التعليمات التي تحتوي على الحرف (I) ضمن هذه الفئة. يشير الحرف (I) إلى وضع العنونة الفوري.
مثال:
MVI A, 20H ; Moves 8 bit immediate data (20H) into accumulator
MVI M, 30H ; Moves 8 bit immediate data (30H) into the memory location
; pointed by HL register pair.
LXI SP, 2700H ; Moves 16 bit immediate data (2700H) into SP.
LXI D, 10FFH ; Moves 16 bit immediate data (10FFH) into DE register pair
; (D = 10H and E = FFH).
وضع العنونة السجل في المعالج الدقيق 8085:
هناك أنواع أخرى من أوضاع العنونة في المعالج الدقيق (8085) وهي سجل وضع العنونة في المعالج (8085) والذي يحدد معامل المصدر أو المعامل الوجهة أو كليهما ليتم تضمينهما في سجلات (8085)، ينتج عن هذا تنفيذ أسرع، لأنّه ليس من الضروري الوصول إلى مواقع الذاكرة للمعاملات.
مثال:
MOV A, B ; Moves the contents of register B into the accumulator.
SPHL ; Moves the contents of HL register pair into stack pointer.
ADD C ; Adds the contents of register C into the contents of
; accumulator and stores result in the accumulator.
وضع العنونة المباشر في المعالج الدقيق 8085:
يحدد وضع العنونة المباشر في المعالجات (8085) عنوان (16) بت للمعامل ضمن التعليمات نفسها، يحتوي البايتان الثاني والثالث من التعليمات على عنوان (16) بت هذا، ضع في اعتبارك شبكة المستودعات التي ناقشناها في البداية، تحتوي المستودعات على أرقام كعناوين، في هذا الوضع، نستخدم الرقم المقابل “العنوان” للإشارة إلى المستودع “موقع الذاكرة”.
مثال:
LDA 2000H ; Loads the 8 bit contents of memory location
; 2000H into the accumulator.
SHLD 3000H ; Stores the HL register pair into two consecutive memory
; locations. Lower byte i.e. the contents of L register into
; memory location 3000H and higher byte i.e. the contents
; of H register into memory location 3001H.
وضع العنونة غير المباشر في المعالج الدقيق 8085:
في وضع العنونة غير المباشر في المعالجات (8085)، يتم تحديد عنوان الذاكرة حيث يقع المعامل بواسطة محتويات زوج السجل (register pair)، في هذا الوضع، يحتفظ السجل “السجلات” بعنوان الموقع الذي سيتم استرداد البيانات منه.
وضع العنونة الضمني في المعالج الدقيق 8085:
في وضع العنونة الضمني في المعالجات (8085)، يحدد كود التشغيل عنوان المعاملات، في هذا الوضع من العنونة، يعرف المعالج الدقيق بالفعل موقع البيانات المطلوب معالجتها ولا يحتاج المبرمج إلى تعريفها بشكل صريح، هذه المعلومات موجودة بالفعل في كود التشغيل.