در این مطلب دو دستور بسیار کلیدی و کاربردی را در پشته به شما معرفی می کنیم که اگر بخواهید از پشته در برنامه استفاده کنید یا در ساختمان داده از این دستور باید حتما استفاده کنید.
دستورات push و pop دستورات پایه برای استفاده از پشته هستند. برنامه نویس اسمبلی از طریق دستورات زیر می تواند داده های خود را در پشته قراردهد و یا از پشته بردارد. فرم کلی دستورات به صورت زیر است:
push mem/reg
pop mem/reg
push عملوند خود را به پشته اضافه می کند و دستور pop مقداری را از پشته حذف می کند و در عملوند خود قرار می دهد. داده ای که برداشته می شود همیشه آخرین داده ای است که اضافه شده است.
عملوند دستورات push و pop نمی توانند فوری یا ثبات های CS و IP و flag باشند.
مثال ۱٫ دستورات زیر یک کلمه را در پشته قرار می دهد.
mov AX, 12
push AX
مثال ۲٫ دستورات زیر محتوای دو متغیر Value و Count را با هم تعویض می نماید.
push Value
push Count
pop Value
pop Count
مثال ۳٫ به کمک دستورات پشته می توان محتوای یک ثبات سگمنت را در دیگری کپی کرد.
push DS
pop CS
مثال ۴٫ مقدار نهائی AX برابر با ۱۲۳۴h است. ابتدا در AX عدد ۱۲۳۴h ذخیره می شود سپس وقفه فراخوانی می شود. مقدار AX از پشته بازیابی می شود.
mov AX,1234H
push AX
mov AH,09
int 21H
pop AX