ضمن دروس شرح البرمجة بلغة الاسمبلي ,نقدم اليكم اليوم تعليمات المكدس ويمكنكم الاطلاع ايضا على الدروس السابقة من خلال الروابط التالية :
الدرس الثاني معالجات 4CISC و معالجات RISC - computer interface
الدرس الثالث المعالجات التواردية pipelining
الدرس الخامس المتحكمات الصغرية Microcontroller
الدرس السابع البنية الداخلية للمعالج 8088/ 8086
الدرس الثامن السجلات الداخلية للمعالج 8088/ 8086
الدرس التاسع تنظيم ذاكرة المعالج 8086
الدرس العاشر انماط العنونة addressing modes
الدرس الحادي غشر البرمجة بلغة التجميع assembly language
الدرس الثاني عشر موجِّهات او ايعازات لغة التجميع Assembler Directives
الدرس الثالث عشر تعليمات المعالج 8088/ 8086 - لغة التجميع
الدرس الرابع عشر تعليمات القفز المشروط - شرح المعالج 8086
الدرس الخامس عشر تعليمات الإزاحة - شرح المعالج 8086
ننتقل الى درس اليوم تعليمات المكدس :
الدرس الخامس عشر تعليمات الإزاحة - شرح المعالج 8086
ننتقل الى درس اليوم تعليمات المكدس :
تستخدم تعليمة PUSH لتخزين معطيات في المكدس على نحو مؤقت أو لتمرير معطيات من برنامج رئيس إلى إجرائية أو بالعكس. كما تستخدم التعليمة PUSHF لُتخزين محتوى سجل الراية في المكدس.
تُستخدم التعليمة PUSH على نحو خاص لحفظ محتوى السجلات التي يُتوقع أن تتغير قيمها
خلال تنفيذ إجرائية.
عند استخدام تعليمة PUSH لتخزين معامل من 16 -بت في المكدس يجري تنفيذ الخطوات التالية:
- يخزن البايت الأكثر دلالة للكلمة في الموقع الذي يعنونه SP-1 .
- يخزن البايت الأقل دلالة في الموقع الذي يعنونه SP-2 .
- ينقص SP بمقدار 2 SP ← SP-2 :
يمكن أن يكون المعامل سجل عام أو سجل مقتطع أو موقع ذاكرة.
مثال:
PUSHF ; push flages
PUSH AX ; push
accumulator
PUSH C
PUSH [BX] ; push the
location pointed by BX
تنسخ التعليمة POP في معامل التعليمة آخر بايتين خزنتا في المكدس (البايتين الموجدتين في قمة المكدس)، ومن ثم تزيد SP بـ 2 على النحو التالي:
- يجري نسخ البايت الأقل دلالة من الموقع الذي يعنونه SP .
- يجري نسخ البايت الأكثر دلالة من الموقع الذي يؤشر إليه SP-1 .
- يزاد SP بمقدار 2 : SP ← SP+2 .
يمكن أن يكون المعامل في التعليمة POP سجل عام أو سجل مقتطع، ما عدا
CS , أو موقع ذاكرة. نستخدم التعليمة
POPF لنسخ محتوى المكدس في سجل الراية.
مثال
POPF ; pop flages
POP AX ; pop
accumulator
POP C
POP [BX] ; pop the
location pointed by BX
نخزن، عادة، في بداية كل إجرائية السجلات التي يمكن أن يتغير محتواها خلال تنفيذ الإجرائية. فمثلا تخزن التعليمات التالية سجل الرايات و AX و BX في المكدس:
PUSHF
PUSH AX
PUSH BX
وقبل العودة من الإجرائية نسحب السجلات من المكدس بالترتب العكسي، أي المخزن أخيرًا
يسحب أولا:
POP BX
POP AX
POPF
RET
نلتقي في التدوينة القادمة دمتم بخير لا تنسى دعمنا بالمشاركة
جيد لكن اريد توضيح أكثر لان عندي بالمنهج ..واريد توضيح عن شنو معنى'$'و@ بالايعازات مع الشكر
ردحذف