PDA

View Full Version : far ؟



mohsenk
پنج شنبه 19 خرداد 1384, 08:03 صبح
با سلام
اگر ممکن است در مورد far در c توضیحی بدهید؟

محمد میرمصطفی
جمعه 20 خرداد 1384, 00:47 صبح
در زبان اسمبلی ما سه سگمنت اصلی برای هریک از قطعات برنامه داریم: کد سگمنت، دیتا سگمنت، و استک سگمنت که هر کدوم در دارای رجیستر منحصر بفرد (به ترتیب CS و DS و SS) ممکنه DS برای آدرس دهی کل دیتاسگمنت کافی نباشه یا دیتا از یه ماجول دیگه وارد بشه. در این صورت از ادرس کامل برای آدرس‏دهی حافظه استفاده می‏شه. تو حالت عادی کد و دیتاسگمنت یکی هستن یعنی آدرس دهی فقط رو یه سگمنت صورت می‏گیره ولی از ایندوتا هر کدوم رو یه سگمنت باشن، باید آدرس‏دهی کامل باشه. در c متغییرهای pointerی که far باشن، کامپایلر از آدرس‏دهی کامل استفاده می‏کنه.

Inprise
جمعه 20 خرداد 1384, 01:18 صبح
لازمه اضافه کنم محیطهای امروزی توسعه نرم افزار که 32 بیتی و مبتنی بر Protected Mode هستند به این مفهوم نیازی ندارند و استفاده از far محدود به نرم افزارهای قدیمی مانند نرم افزارهای مبتنی بر داس است .

mohsenk
جمعه 20 خرداد 1384, 06:44 صبح
خیلی ممنون دوستان :wink: