اولین بار است که به این وب‌سایت می‌آیید. راهنما را مطالعه کنید!
x
موسسه خیریه محک

شهر ریاضی بازی-ریاضی

روش به کار بردن داده‌های ۳۲ بیتی روی پردازنده‌ی ۶۴ بیتی

0 امتیاز
292 نمایش

در پردازنده‌ی ۶۴ بیتی هر دستور کامپیوتر ۸ بایت رو به حافظه‌ی پردازنده منتق می‌کنه. پس وقتی دو داده‌ی ۳۲ بیتی رو به پردازنده ارسال می‌کنیم که با هم جمع بشن، در حقیقت دو تا ۶۴ بیت رو ارسال می‌کنیم. این مشکلی پیش نمی‌یاره؟ دسترسی اشتباه به حافظه!

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پرسیده شده پنجشنبه ۱۵ فروردین ۱۳۹۲ در C++ توسط prodo  

1 پاسخ

0 امتیاز

خیر. وقتی هم که در پردازنده‌ی ۳۲ بیتی از داده‌ی short ۱۶ بیتی استفاده می‌کنیم همین اتفاق می‌افته.

در حالت کلی، کامپایلرهای امروزی داده‌های ۳۲ بیتی در کامپیوترهای ۶۴ بیتی رو روی ضرایب ۸ از حافظه می‌چینن. این کار برای افزایش سرعت اجرا خوبه. بنابراین اصلاً مشکلی پیش نخواهد اومد.

در حالتی هم که کامپایلر این کار و نکنه باز هم عملیات رو به صورتی انجام می‌ده که دسترسی غیرمجاز اتفاق نیافته.

نکته‌ی آخر: اگه با اسمبلی کار کرده باشین متوجه شدین که با اومدن ثبات‌های ۳۲ بیتی EAX و EBX و ... باز هم ثبات‌های ۱۶ بیتی AX و BX و ... به عنوان قسمتی از این ثبات‌ها همراه با عملیات‌شون موجود بودند.

هیچ پژوهش انسانی نمی‌تواند ادعای علمی بودن داشته باشد، مگر این‌که از برهان ریاضی برخوردار باشد (لئوناردو داوینچی)
پاسخ داده شده چهارشنبه ۱۵ خرداد ۱۳۹۲ توسط prodo