اول اینکه کلا سوال غلطه ولی اگه مثه سوالات دانشگاه ازادی باش رفتار کنیم(غلط بودنش اینه که در دستورات سه و دو ادرسه فقط یکی از ادرس ها میتونه مربوط به حافظه باشه و بقیه ریجستر هستن) ولی چون سوال چیزی باید خیلی الکی پاسخ بدیم :-D
۳۲ بیتی هستن دستورات. هر ادرسم ۶بیتی هستش،
در دستورات ۳ ادرسی ۳٭۶ بیت میره واسه ادرسامون میشه ۱۸ بیت
۳۲-۱۸=۱۴ بیت برای Opcode میمونه که حداکثر دستوراتمونه ولی ما فقط از نصفش استفاده میکنیم که یعنی
۲^۱۳
پس
کد:
۲^۱۴-۲^۱۳
۳ادرسی داریم.
دستورات دو ادرسی ۱۲ بیت واسه ادرس دارن که ۲۰ بیتم میمونه واسه OpCode که این ۲۰ بیت
۱۴ بیتش واسه سه ادرسیا بود و میمونه ۶ بیت برای دو ادرسه که از اون ۶ بیت که میشه ۲ به توان ۶ دستور، ما نصفشو فقط واسه دو ادرسیا استفاده کردیم و همچنین یادمونه که یه بیتم از دستورات ۳ ادرسه استفاده نشده که میشه توو دستورات دو ادرسه استفاده بشه (همون نصفی که استفاده نشده بود) در نتیجه یعنی
حداکثر تعدادی که میتونی دستورات دو ادرسه داشته باشیم برار ۲بتوان ۶ بعلاوه اون یه بیتی که از بالا مونده بود(همون نصفه که تو دستورات ۳ ادرسه استفاده نشده بود)
حداکثر
دستور دو ادرسه داریم که از اینا نصفشون استفاده میشه و نصف دیگش میتونه برای دستورات تک ادرسه بمونه یعنی
کد:
( ۲^۶ * (۲^۱۴ - ۲^۱۳) - ۲^۵ * (۲^۱۴ - ۲^۱۳))
کل دستورات دو ادرسه ای هستش که استفاده میشه
خب حالا میریم سراغ دستورات تک ادرسه که فقط ۶بیت از اون ۳۲ بیت میره واسه ادرس و مابقیش میتونه OpCode باشه یعنی ۲۶ بیت باقی میمونه واسه دستورات که از این ۲۶ بیت ما کلیشو دادیم به دستورات دو و سه ادرسه یعنی ۲۰ بیتش برای دستورات دو و سه ادرسه رفته میمونه ۶بیت برای دستورات تک ادرسه
پس حداکثر تعداد دستورات تک ادرسه میتونه ۲بتوان ۶ دستور بعلاوه اون دستوراتی که توی دستورات سه و دو ادرسه استفاده نشده بود همون نصفی هایی که استفاده نشده بود و د اخر اینجور حساب میشه که
کد:
حداکثر تعداد دستورات تک ادرسه
۲^۶ * (۲^۶ * (۲^۱۴ - ۲^۱۳) - ۲^۵ * (۲^۱۴ - ۲^۱۳))
کلا سوال اشتبا بود ولی میشد مثه سوالای داشنگاه ازاد باش برخورد کرد