مدیریت حافظه در زبان اسمبلی – آموزش Assembly

  • پنجشنبه ۲۵ بهمن ۱۳۹۷
  • بازدید ۲,۲۱۸ نفر

تصویر assembly-memory-management_4622 مدیریت حافظه در زبان اسمبلی - آموزش Assembly

مدیریت حافظه در زبان اسمبلی

فراخوان سیستم sys_brk() که توسط هسته ارائه (kernel) می شود، برای تخصیص حافظه پویا استفاده می شود. این فراخوان درست در پشت تصویر برنامه، حافظه را اختصاص می دهد. این تابع سیستمی امکان تنظیم بیشترین آدرس موجود در بخش data را فراهم می کند.

sys_brk() یک پارامتر می گیرد که بالاترین آدرس حافظه مورد نیاز برای تنظیم شدن را مشخص می کند. این مقدار در ثبات EBX ذخیره می شود. sys_brk() در صورت بروز خطا، مقدار -1 یا یک عدد منفی که نشان دهنده کد خطا است را باز می گرداند. مثال زیر نحوه تخصیص حافظه پویا در اسمبلی را نشان می دهد:

مثال

برنامه زیر، 16 کیلوبایت حافظه را با استفاده از sys_brk() تخصیص می دهد:

امتحان کنید

زمانی که کد بالا توسط کامپایلر اسمبلی اجرا شود، نتیجه زیر را تولید خواهد کرد:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۱ مورد)
  1. تصویر آواتار کاربر 0
    ahmadreza پنجشنبه , 12 آبان

    سلام دوره تکمیله یا خیر ؟