تالار گفتمان مانشت

نسخه‌ی کامل: قالب دستور العمل- آی تی 88
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام. سوال رو پیوست کردم.

مدرسان جواب این سوال رو این طوری داده:
3584=(8^2*1)-(8^2*1)-4096
کسی میتونه توضیح بده؟؟
چرا 2 به توان 8؟؟

[attachment=15346]
(21 بهمن 1392 08:09 ب.ظ)mhd3 نوشته شده توسط: [ -> ]سلام. سوال رو پیوست کردم.

مدرسان جواب این سوال رو این طوری داده:
۳۵۸۴=(۸^۲*۱)-(۸^۲*۱)-۴۰۹۶
کسی میتونه توضیح بده؟؟
چرا ۲ به توان ۸؟؟
عکس نمیاد
(21 بهمن 1392 08:11 ب.ظ)masoud67 نوشته شده توسط: [ -> ]عکس نمیاد

من نمیرم تا جواب بدید Big Grin
ممنون Smile
دستورات یک اپرندی و دو اپرندی هر کدوم 4 بیت برای آپکد دارند
یعنی این دو تا روی هم 2 به توان 4 تا دستور یعنی16 دستور میتونن داشته باشن

و دستورات صفر اپرندی ، 12 بیت برای آپکد داره که قبلا 4 بیتش واسه دستورات یک و دو اپرندی حروم شده
پس 2 به توان 8 تا ، دستور میتونیم واسه این دستور درست کنیم

تو این حالت 16 + 256 تا دستور داریم
ولی میتونیم کاری کنیم که تعداد دستورات بیشتر بشه

به همین خاطر از اون 16 تای اولی ، فقط دوتاشو استفاده میکنیم یکی برای دستورات دو اپرندی و یک دستور هم برای دستورات تک اپرندی و 14 تای دیگه رو بلا استفاده میذاریم واسه دستورات صفر اپرندی
حالا 14 دستور از تک اپرندی و دو اپرندی بی استفاده مونده که باید در 2 به توان 8 ضرب کنیم
256 * 14 = 3584 دستور برای دستورات صفر اپرندی داریم
دوتا هم از قبل واسه دستورات دو و تک اپرندی داشتیم که میشه 3586
این حالت بیشترین حالت دستورات برای این سیستم حساب میشه
(21 بهمن 1392 08:26 ب.ظ)masoud67 نوشته شده توسط: [ -> ]دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند
یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن
خیلی ممنون از وقت و جوابتون. قسمت دوم جوابتون رو کاملا متوجه شدم، فقط یه سوال اون قسمتی که گفتید دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن، چرا 16 تا؟؟ چرا 32 نشه؟؟
ببخشید اگه سوالم بدیهیه، انقد ذهنم خسته شده اصلا نمیتونم فکر کنم و دلیلشو بفهمم.
اگه یه توضیح کوچولو بدید ممنون میشم...
(21 بهمن 1392 08:33 ب.ظ)mhd3 نوشته شده توسط: [ -> ]
(21 بهمن 1392 08:26 ب.ظ)masoud67 نوشته شده توسط: [ -> ]دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند
یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن
خیلی ممنون از وقت و جوابتون. قسمت دوم جوابتون رو کاملا متوجه شدم، فقط یه سوال اون قسمتی که گفتید دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن، چرا ۱۶ تا؟؟ چرا ۳۲ نشه؟؟
ببخشید اگه سوالم بدیهیه، انقد ذهنم خسته شده اصلا نمیتونم فکر کنم و دلیلشو بفهمم.
اگه یه توضیح کوچولو بدید ممنون میشم...
اصلا سوالت بدیهی نیست و خودم دفعه اولی که حل کرذم، 32 گرفته بودم
خودم هم خیلی اینجاشو تسلط ندارم ولی ظاهرا یه همچین چیزی میشه
به نظرم اینجوری میشه چون بیت برای جداسازی مدل دستورات نداریم ، پس وقتی یه دستور مبینیم تنها راه تشخیص اینکه کدوم یکی از این سه مدله ، اینه که به آدرس نگاه کنیم. یه چیزی مثل Memory mapped Io که دستورات حافظه و خروجی یکی هستند و فقط از روی آدرس تشخیص میدیم مربوط به کدوم مدله
دیگه مخم نمیکشه توضیح بدم. Big Grin
(21 بهمن 1392 08:40 ب.ظ)masoud67 نوشته شده توسط: [ -> ]
(21 بهمن 1392 08:33 ب.ظ)mhd3 نوشته شده توسط: [ -> ]
(21 بهمن 1392 08:26 ب.ظ)masoud67 نوشته شده توسط: [ -> ]دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند
یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن
خیلی ممنون از وقت و جوابتون. قسمت دوم جوابتون رو کاملا متوجه شدم، فقط یه سوال اون قسمتی که گفتید دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن، چرا ۱۶ تا؟؟ چرا ۳۲ نشه؟؟
ببخشید اگه سوالم بدیهیه، انقد ذهنم خسته شده اصلا نمیتونم فکر کنم و دلیلشو بفهمم.
اگه یه توضیح کوچولو بدید ممنون میشم...
اصلا سوالت بدیهی نیست و خودم دفعه اولی که حل کرذم، ۳۲ گرفته بودم
خودم هم خیلی اینجاشو تسلط ندارم ولی ظاهرا یه همچین چیزی میشه
به نظرم اینجوری میشه چون بیت برای جداسازی مدل دستورات نداریم ، پس وقتی یه دستور مبینیم تنها راه تشخیص اینکه کدوم یکی از این سه مدله ، اینه که به آدرس نگاه کنیم. یه چیزی مثل Memory mapped Io که دستورات حافظه و خروجی یکی هستند و فقط از روی آدرس تشخیص میدیم مربوط به کدوم مدله
دیگه مخم نمیکشه توضیح بدم. Big Grin
اصلا نمیتونم خودمو توجیه کنم. اخه اینجا حتی آدرس هم نداریم که بگیم به ادرس و محدودش نگاه میکنه. آدرس دهی بلافصله.
امیدوارم از این سوال اصلا نیاد.
بازم ممنون
(21 بهمن 1392 08:26 ب.ظ)masoud67 نوشته شده توسط: [ -> ]دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند
یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن

و دستورات صفر اپرندی ، ۱۲ بیت برای آپکد داره که قبلا ۴ بیتش واسه دستورات یک و دو اپرندی حروم شده
پس ۲ به توان ۸ تا ، دستور میتونیم واسه این دستور درست کنیم

تو این حالت ۱۶ + ۲۵۶ تا دستور داریم
ولی میتونیم کاری کنیم که تعداد دستورات بیشتر بشه

به همین خاطر از اون ۱۶ تای اولی ، فقط دوتاشو استفاده میکنیم یکی برای دستورات دو اپرندی و یک دستور هم برای دستورات تک اپرندی و ۱۴ تای دیگه رو بلا استفاده میذاریم واسه دستورات صفر اپرندی
حالا ۱۴ دستور از تک اپرندی و دو اپرندی بی استفاده مونده که باید در ۲ به توان ۸ ضرب کنیم
۲۵۶ * ۱۴ = ۳۵۸۴ دستور برای دستورات صفر اپرندی داریم
دوتا هم از قبل واسه دستورات دو و تک اپرندی داشتیم که میشه ۳۵۸۶
این حالت بیشترین حالت دستورات برای این سیستم حساب میشه

یه سوال چرا یک opc برای 1و2 عملوندی در نظر گرفتید؟ منظورم اینه که همیشه برای بدست آوردن حداکثر دستور این کار رو میکنیم؟ چرا 0 یا 2 در نظر نگرفتیم به جای 1؟
(21 بهمن 1392 09:49 ب.ظ)fas نوشته شده توسط: [ -> ]یه سوال چرا یک opc برای ۱و۲ عملوندی در نظر گرفتید؟ منظورم اینه که همیشه برای بدست آوردن حداکثر دستور این کار رو میکنیم؟ چرا ۰ یا ۲ در نظر نگرفتیم به جای ۱؟
صفر که نمیشه. اونوقت دیگه دستور تک و دو اپرندی نداریم. بالاخره یه دونه باید باشه. تا وقتی یک هست ، دیگه دو چرا؟
(21 بهمن 1392 09:57 ب.ظ)masoud67 نوشته شده توسط: [ -> ]
(21 بهمن 1392 09:49 ب.ظ)fas نوشته شده توسط: [ -> ]یه سوال چرا یک opc برای ۱و۲ عملوندی در نظر گرفتید؟ منظورم اینه که همیشه برای بدست آوردن حداکثر دستور این کار رو میکنیم؟ چرا ۰ یا ۲ در نظر نگرفتیم به جای ۱؟
صفر که نمیشه. اونوقت دیگه دستور تک و دو اپرندی نداریم. بالاخره یه دونه باید باشه. تا وقتی یک هست ، دیگه دو چرا؟

گفتم شاید ی موقع سنجش دو در نظر بگیره!! ما هم Idea
سلام
بچه ها لطفا کسی اگه میتونه این قسمت جواب سوال رو دوباره توضیح بده

"دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند
یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن
"

تو این تاپیک به نتیجه ای نرسیدن، چرا ۱۶؟

ممنون
(22 دى 1393 01:35 ب.ظ)ghazal dl نوشته شده توسط: [ -> ]سلام
بچه ها لطفا کسی اگه میتونه این قسمت جواب سوال رو دوباره توضیح بده

"دستورات یک اپرندی و دو اپرندی هر کدوم ۴ بیت برای آپکد دارند
یعنی این دو تا روی هم ۲ به توان ۴ تا دستور یعنی۱۶ دستور میتونن داشته باشن
"

تو این تاپیک به نتیجه ای نرسیدن، چرا ۱۶؟

ممنون

ببینید در حالت fech کردن دستورات ما با دستور 16 بیتی مواجه میشیم که باید تشخیص بدیم این دستور از چه نوعی است (یعنی تک عملوندی یا دو عملوند یا بدون عملوند) باید در مرحله اول نوع دستور مشخص بشه تا بتونیم طبق دستور ترجمه شده ، کار مربوطه رو انجام بدیم ( مثلا اگه جمع دو تا عملوند هست بریم عملوندها رو تشخیص بدیم و جمع رو انجام بدیم)
معمولا برای شمارش تعداد دستورات از قالبی شروع کنید که تعداد عملوندهای بیشتری داره. اگه فقط دستورات نوع یک یعنی دو عملوندی باشه به تعداد 2 به توان 4 دستور داریم ولی در این سوال نباید همه بیت های opcode رو به یک نوع دستور اختصاص بدیم و باید حداقل یک opcode رو برای دستورات بعدی بگذاریم. مثلا میشه سه بیت از opcode رو برای دستورات دوعملوندی بگذاریم یعنی 2 به توان 3 که میشه 8 تا و بقیه تعداد یعنی 8 رو واسه دستوارت تک عملوندی بگذاریم. کلا حالت ها ی مختلفی داره. اگه هر 16 تا رو واسه دستورات دو عملوندی و تک عملوندی اختصاص بدیم دیگه از 4 بیت پرارزش دستور نمیتوان در شمارش تعداد دستورات بدون عملوند استفاده کرد و فقط از 12 بیت کم ارزش باید حالات مختلفش رو بشماریم.
حالا واسه اینکه از این 4 بیت پرارزش در شمارش دستورات بدون عملوند استفاده بشه که ماکزیمم تعدادمون بره بالا به هرکدوم از دستورات نوع یک و دو، یک حالت opcode رو اختصاص میدیم تا از 14 حالت باقیمانده حداکثر استفاده رو ببریم.
خیلی خیلی ممنون .
لینک مرجع