تالار گفتمان مانشت
درخواست حل سوال ۱۰۰ از آی تی ۹۲ - نسخه‌ی قابل چاپ

درخواست حل سوال ۱۰۰ از آی تی ۹۲ - Sepideh96 - 16 دى ۱۳۹۶ ۰۶:۲۰ ب.ظ

سوال مورد نظر پیوست شده است

جوابش رو گزینه ۳ زده.

سوالم اینه، اولا چرا بیت مربوط به مد رو لحاظ نمیکنیم؟ دوما تعداد ۲۵۰ دستورالعمل فقط برای دستورات دو آدرسه است که از ۲۵۶، تعداد ۲۵۰ تای انها استفاده شده. چرا تعداد دستورات یک آدرسه (۳۲-۱۲=۲۰ => 20^2 ) را در نظر نمیگیریم؟

ممنون از دوستان

RE: درخواست حل سوال ۱۰۰ از آی تی ۹۲ - msour44 - 17 دى ۱۳۹۶ ۱۲:۲۸ ق.ظ

سلام
چون یک شیوه ی ادرس دهی داریم پس نیازی به بیت برای تعیین مد ادرس دهی نیست.و اینکه چرا دستورات یک ادرسه را [tex]2^{20}[/tex] در نظر نمیگیرم برای تعیین نوع دستور است. دستورات یا دو ادرسی هستند یا تک ادرسی. در حالت دو ادرسی دو تا ۱۲بیت برای بخش ادرس نیاز داریم و ۸ بیت باقی مانده از ۳۲ بیت برای بخش opcode استفاده می شود که همانطور که خودتان گفتید ۲۵۶ حالت امکان پذیر است که از ۲۵۰ حالت استفاده شده است.۶ حالت باقی مانده برای تعیین دو ادرسی یا تک ادرسی میتواند استفاده شود.در واقع در ساده ترین حالت و بدون جزئیات اگه بخواهیم بگیم واحد کنترل بیت های opcode را دریافت کرده و بعد از دیکد انها مشخص می شود نوع دستور دو ادرسی است یا تک ادرسی .اگر دو ادرسی باشد هر دو فیلد ۱۲ بیتی باقی مانده را ادرس فرض می کند و اگر تک ادرسی باشد فقط ۱۲ بیت ابتدایی را ادرس فرض می کند.برای مثال حالت های ۰۰۰۰۰۰۰ و ۰۰۰۰۰۰۱ و۰۰۰۰۰۰۱۰و ...و۰۰۰۰۱۰۱ میتواند در بخش Opcode معرف تک ادرسی بودن باشد البته این فقط یک مثال است و نحوی انتخاب بیت ها به معماری ماشین بستگی دارد.و باید بگیم که تفاوت قائل شدن در کنار خود تعیین دستور است (یعنی چه opcode باید اجرا شود)یعنی خود ۶ حالت به همراه ۱۲ بیت بعدی نوع دستور تک ادرسی را مشخص میکند و ۶ حالت فقط برای تمییز قائل شدن نیست. پس برای هر ۶ حالت [tex]2^{12}[/tex] حالت جدید هم در بخش دوم ۱۲ بیتی امکان پذیر است پس حداکثر تعداد دستور های تک ادرسی برابر با [tex]6\times2^{12}[/tex].