انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: نحوه آدرس دهی حافظه چجوریه ؟  (دفعات بازدید: 4532 بار)

0 کاربر و 2 مهمان درحال مشاهده موضوع.

آفلاین morteza1991

  • Jr. Member
  • *
  • ارسال: 34
نحوه آدرس دهی حافظه چجوریه ؟
« : 12 مهر 1389، 04:51 ب‌ظ »
داشتم در مورد آرایه ها می خوندم که رسیدم به این مطلب :
‫به طوركلي اگر هر عنصر از آرايه با نام ‪ ،a‬به اندازه ‪ size‬بايت فـضا اشـغال كنـد، محـل‬
                                           ‫عنصر ‪ i‬ام بهصورت زير محاسبه ميشود:‬
                             ‫‪Loc(i)=base(a)+i*size‬‬
اول فکر کردم اشتباه هست. چون کوچکترین واحد حافظه بیت هست و باید به بیت ها آدرس دهی بشه
ولی تو c امتحان کردم و آدرس دو عنصر پشت سر هم یک آرایه رو بدست آوردم و دیدم که دیدم اختلافشون با هم ۴ واحد هست. و نوع int هم بدست آوردم و دیدم ۴ بایت هست.
حالا موندم که که اگه اینجوری باشه چجوری cpu به بیت ها دسترسی پیدا میکنه و روشون عملیات رو انجام میده.

آفلاین heresh

  • Hero Member
  • *
  • ارسال: 968
  • جنسیت : پسر
پاسخ به: نحوه آدرس دهی حافظه چجوریه ؟
« پاسخ #1 : 12 مهر 1389، 08:38 ب‌ظ »
منظورت چیه از اینکه میگی چه جوری؟
خب اون چهار بایت از حافظه به cpu فراخوانی میشه و در یک ثبات چهار بیتی ذخیره میشه. بعد بوسیله مدارهایی که تو cpu هست عملیات روشون انجام میشه.
« آخرین ویرایش: 12 مهر 1389، 08:54 ب‌ظ توسط heresh »

آفلاین r_m1232002

  • Full Member
  • *
  • ارسال: 143
پاسخ به: نحوه آدرس دهی حافظه چجوریه ؟
« پاسخ #2 : 12 مهر 1389، 09:34 ب‌ظ »
اول فکر کردم اشتباه هست. چون کوچکترین واحد حافظه بیت هست و باید به بیت ها آدرس دهی بشه

اگرچه کوچکترین واحد حافظه بیت است ولی برخلاف تصور شما بیت ها در حافظه آدرس پذیر نیستند یعنی کوچکترین واحد آدرس دار در حافظه بایت است. یک بیت به تنهایی برای CPU معنای خواصی ندارد و دستورالعمل های ماشین خیلی طولانی تر از یک بیت هستند (چند بایت با توجه به معماری سیستم ) بنابراین طبیعی است که نیازی به درخواست یک بیت از حافظه نیست و به همین دلیل نیازی هم به آدرس پذیر بودن بیت ها نیست.
اگر کسی در این میان نیاز به داده ای یک بیتی داشته باشد آن CPU نیست بلکه شما به عنوان یک برنامه نویس ممکن است به یک بیت نیاز داشته باشید. در این حالت مجبور هستید یک بایت کامل را از حافظه بگیرید و در یکی از رجیستر ها ذخیره کنید. آن گاه با استفاده از اعمال منطقی (and)  و شیفت ، بیت مورد نظر خود را بدست آورید.

آفلاین Pyruzan

  • Full Member
  • *
  • ارسال: 245
  • جنسیت : دختر
  • Long Live KDE
پاسخ به: نحوه آدرس دهی حافظه چجوریه ؟
« پاسخ #3 : 12 مهر 1389، 10:53 ب‌ظ »
اگرچه کوچکترین واحد حافظه بیت است ولی برخلاف تصور شما بیت ها در حافظه آدرس پذیر نیستند یعنی کوچکترین واحد آدرس دار در حافظه بایت است. یک بیت به تنهایی برای CPU معنای خواصی ندارد و دستورالعمل های ماشین خیلی طولانی تر از یک بیت هستند (چند بایت با توجه به معماری سیستم ) بنابراین طبیعی است که نیازی به درخواست یک بیت از حافظه نیست و به همین دلیل نیازی هم به آدرس پذیر بودن بیت ها نیست.
اگر کسی در این میان نیاز به داده ای یک بیتی داشته باشد آن CPU نیست بلکه شما به عنوان یک برنامه نویس ممکن است به یک بیت نیاز داشته باشید. در این حالت مجبور هستید یک بایت کامل را از حافظه بگیرید و در یکی از رجیستر ها ذخیره کنید. آن گاه با استفاده از اعمال منطقی (and)  و شیفت ، بیت مورد نظر خود را بدست آورید.
=D>

آفلاین morteza1991

  • Jr. Member
  • *
  • ارسال: 34
پاسخ به: نحوه آدرس دهی حافظه چجوریه ؟
« پاسخ #4 : 13 مهر 1389، 11:22 ب‌ظ »
اول فکر کردم اشتباه هست. چون کوچکترین واحد حافظه بیت هست و باید به بیت ها آدرس دهی بشه

اگرچه کوچکترین واحد حافظه بیت است ولی برخلاف تصور شما بیت ها در حافظه آدرس پذیر نیستند یعنی کوچکترین واحد آدرس دار در حافظه بایت است. یک بیت به تنهایی برای CPU معنای خواصی ندارد و دستورالعمل های ماشین خیلی طولانی تر از یک بیت هستند (چند بایت با توجه به معماری سیستم ) بنابراین طبیعی است که نیازی به درخواست یک بیت از حافظه نیست و به همین دلیل نیازی هم به آدرس پذیر بودن بیت ها نیست.
اگر کسی در این میان نیاز به داده ای یک بیتی داشته باشد آن CPU نیست بلکه شما به عنوان یک برنامه نویس ممکن است به یک بیت نیاز داشته باشید. در این حالت مجبور هستید یک بایت کامل را از حافظه بگیرید و در یکی از رجیستر ها ذخیره کنید. آن گاه با استفاده از اعمال منطقی (and)  و شیفت ، بیت مورد نظر خود را بدست آورید.

متشکرم.
در مورد آدرس منطقی و آدرس فیزیکی هم توضیحاتی می فرمایید