לדלג לתוכן

אסמבלי x86/פקודות/פקודות מחסנית

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
אסמבלי x86











1. הוראת דחיפת נתון למחסנית

[עריכה]

PUSH OP:

הפעולה לוקחת את OP ודוחפת למחסנית.

OP יכול להיות:

  • אוגר בעל 16 סיביות
  • ערך בזיכרון

לדוגמה:

    PUSH AX

2. הוראת שליפה מהמחסנית

[עריכה]

POP REG:

שולפת את האיבר העליון במחסנית ודוחפת לאוגר.

לדוגמה:

mov ax, 5
push ax
pop bx


mov ax, 5

מעביר ל-ax 5

push ax

לאחר פקודה זו באיבר העליון במחסנית יהיה 5 - ערכו של ax

pop bx

פקודה זו תוציא את 5 מהמחסנית ותכניס אותו ל-bx

יש לשים לב שאי אפשר להוציא מהמחסנית נתון לפני שהוציאו את הנתון שנמצא בראש המחסנית. אם רוצים להכניס מספר אוגרים ואחר כך להוציא יש להוציא להיפך מהסדר שהוכנסו (כלומר אם הוכנס AX ואחר כך DX ורוצים להחזיר כל אחד למקומו יש להוציא DX ואחר כך AX) אם מוציאים לפי הסדר שהוכנסו זה יחליף את הנתונים.


PUSHF - דוחף את כל הדגלים למחסנית. ניתן להוציא את הדגלים ע"י POPF ואז הדגלים יחזרו למצב שהיו כאשר עשינו PUSHF (יש לציין שהדגלים חייבים להיות בראש המחסנית).

ניתן גם לדחוף את חלק רב מן האוגרים למחסנית להוציאם בעזרת PUSHA ו POPA (בהתאמה) האוגרים שאותם ניתן להכניס ולהוציא בפקודות הנ"ל הם: AX,CX,DX,BX,SP,BP,SI,DI