Navigation

تعليمات المكدس - شرح المعالج 8086 شرح كامل

تستخدم تعليمة PUSH لتخزين معطيات في المكدس على نحو مؤقت أو لتمرير معطياتمن برنامج رئيس إلى إجرائية أو بالعكس. كما تستخدم التعليمة PUSHF لُتخزينمحتوى سجل الراية في المكدس. تُستخدم التعليمة PUSH على نحو خاص لحفظ محتوى السجلات التي يُتوقع أن تتغيرقيمها خلال تنفيذ إجرائية.

تستخدم تعليمة PUSH لتخزين معطيات في المكدس على نحو مؤقت أو لتمرير معطياتمن برنامج رئيس إلى إجرائية أو بالعكسكما تستخدم التعليمة PUSHF لُتخزينمحتوى سجل الراية في المكدس.
تُستخدم التعليمة PUSH على نحو خاص لحفظ محتوى السجلات التي يُتوقع أن تتغيرقيمها خلال تنفيذ إجرائية.        

عند استخدام تعليمة PUSH لتخزين معامل من 16 -بت في المكدس يجري تنفيذالخطوات التالية:
  1.        يخزن البايت الأكثر دلالة للكلمة في الموقع الذي يعنونه SP-1 .
  2.         يخزن البايت الأقل دلالة في الموقع الذي يعنونه SP-2 .
  3.         ينقص 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 على النحو التالي:
  1. يجري نسخ البايت الأقل دلالة من الموقع الذي يعنونه SP .
  2.   يجري نسخ البايت الأكثر دلالة من الموقع الذي يؤشر إليه SP-1 .
  3.   يزاد 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
مشاركة

أضف تعليق:

0 comments: