سلام
یه سوال دارم
دلیل اینکه توی برنامه های بازگشتی اسمبلی بعد از صدا زدن تابع درون خودش می نویسیم
add sp , 2
چیه ؟
و اینکه چرا بعضی وقتا اینجوریه ؟
add sp,8
Printable View
سلام
یه سوال دارم
دلیل اینکه توی برنامه های بازگشتی اسمبلی بعد از صدا زدن تابع درون خودش می نویسیم
add sp , 2
چیه ؟
و اینکه چرا بعضی وقتا اینجوریه ؟
add sp,8
اگر منظورتان این هست که چرا مقدار اشاره گر پشته در برنامه های بازگشتی در اسمبلی بصورت اعداد متفاوت برداشته میشه این هست که اگر یک تابع یا proc بصورت far یا near توسط call صدا زده شده باشه در این صورت برای اولی فقط ip و برای دومی علاوه بر ip رجیستر cs هم داخل پشته قرار میگیره به همین دلیل نیاز هست که موقعین اشاره گر رو بر اساس نوع call کاهش و یا افزایس بدیم.
البته آزاد کردن دستی محل اشاره گر پشته در هنگام کد نویسی اصولی نیست.