PDA

View Full Version : سوال: برنامه ی بازگشتی در اسمبلی



sataho
سه شنبه 16 آذر 1389, 20:20 عصر
سلام
یه سوال دارم
دلیل اینکه توی برنامه های بازگشتی اسمبلی بعد از صدا زدن تابع درون خودش می نویسیم
add sp , 2
چیه ؟
و اینکه چرا بعضی وقتا اینجوریه ؟
add sp,8

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