تالار گفتمان مانشت

نسخه‌ی کامل: اشکال در BUN , BSA
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان من بحث انشعاب رو از روی کتاب پوران خوندم اما خیلی خوب متوجه نشدم میشه بگین از روی چه کتابی بخونم یا خودتون زحمت توضیحش رو بکشیدBlush
ممنون
اون موقع که خوندم سرم درد میکرد واسه همین نفهمیدم.

فقط اینو نفهمیدم:
address+1 -->address
این دو دستور برای فراخوانی زیر روال و بازگشت از آن بکار میرن.
فرمت BSA معمولا اینجوریه مثلا
فرض کنید دستور bsa ما در آدرس 20 حافظه قرار داره و فرمت دستور هم اینطوریه:
0 BSA 135
که اینجا 0 نوع آدرس دهی و 135 آدرس عملوند(AR) یا همون زیر برنامه مونه (که از آدرس 136 شروع میشه)
بنابرین ما محتوای pc (که آدرس دستور بعدی هست یا همون 21)رو توی آدرس 135 قرار میدیم (آدرس بازگشت) و AR رو یکی اضافه میکنیم و اونو توی PC میذاریم تا اولین دستور زیر روال را اجرا کنیم.(در آدرس 136)
برای بازگشت هم از آدرس دهی غیر مستقیم با AR =135 و دستور BUN استفاده می کنیم تا از خانه 135 آدرسِ آدرس عملوند را که همان 21 است را برداریم و در pc بگذاریم و ادامه دستورات بعد از فراخوانی زیر برنامه را اجرا کنیم.

امیدوارم توضیحاتم مفید بوده باشه و منظورمو گرفته باشی.
اینایی که گفتم شکلش توی کتاب موریس مانو هست.
خیلی ممنون Smile
یعنی این روش همونه که میگه آدرس بازگشت در اولین خانه زیر روال است و فراخوانی تو در تو نمیتونیم داشته باشیم؟!

آخه من با خودم میگفتم اگه اولین خونه باشه که همون موقع اجرا برگشت میکنه!! پس یعنی اولین خونه هست ولی ما از بعدیش اجرا میکنیم؟!
بله درواقع زیر روال از آدرس 136 شروع میشه و ما آدرس بازگشت را توی خونه 135 ذخیره می کنیم. دستور باز گشت هم دقیقا بعد از زیر روال است. یعنی بعد از اجرای کامل زیر روال برگشت می کنیم.
لینک مرجع