אסמבלי 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