اصولاَ ساختار و مشخصات داخلی CPU و همچنین ثباتها، قابلیتهای هر کامپیوتری، در کاتالوگ سیستم کامپیوتری مربوطه وجود دارد.
در کاتلوگ مذکور لیست تمام دستورات، فرمتهای مختلف دستورها، کد اجرایی و جزئیات هر دستور نوشته شده است بررسی و تجزیه و تحلیل دستورات، و فراهم آوردن تابعهای مورد لزوم برای اجرای هر دستور، توسط واحد کنترل انجام میشود.
فرمت هر دستور معمولاَ به چند قسمت1 تقسیم شده است که معمولترین این قسمتها شامل:
1- قسمت کد اجرا، که نوع عملیات دستور را مشخص میکند.
2- قسمت آدرس، که آدرس یک خانه حافظه، یا ثبات پروسسور را مشخص میکند.
3- قسمت حالت آدرس دهی، که معمولاَ روشی است که عملوند یا آدرس مؤثر تعیین میشود را، بیان میکند.
البته در بعضی حاالات قسمتهای دیگری نظیر تعداد شیفت در یک دستور شیفت، و یا نظایر آن نیز وجود دارد.
اصولاَ عملیات دستورات کامپیوتر برروی اطلاعاتی است که در حافظه، و یا ثباتهای پروسسور قرار دارد.
بدیهی است هر خانه و یا ثبات پردازنده توسط آدرسدهی آنها تعیین میشود.
آدرس ثبات پردازنده با 16 ثبات تا دارای قسمت آدرس ثبات با 4 بیت میباشد مثلاَ عدد باینری 0101 ثبات را مشخص مینماید.
کامپیوتر ممکن است دارای دستورات با طولهای مختلف و تعداد بیتهای قسمت آدرس متفاوت باشند.
تعداد بیتهای قسمت آدرس در فرمت دستور، تابع تعداد ثباتهای CPU است، ثباتهای اکثر CPU کامپیوترها، به یکی از سه فرم زیر میباشد.
- CPU دارای یک اکومولیتور 
- CPU دارای چندین ثبات 
- CPU دارای حافظه پشته
 یک مثالی از تشکیلات کامپیوتری که CPU آن فقط یک اکومولیتور است مورد بحث قرار گرفت.
در این CPU تمام عملیات برروی اکومولیتور انجام میشود به عنوان مثال دستوری که جکع ریاضی را انجام میدهد در زبان اسمبلی بصورت:
ADDX
نوشته میشود که در آن X آدرس عملوند در حافظه است این دستور محتوای خانه حافظه به آدرس X را که به نمایش میدهیم با محتوی اکومولیتور AC جمع، و تیجه را در اکومولیتور AC قرار میدهد یعنی .
مثالی از کامپیوترهائی که دارای چندین ثبات هستند نشان داده شده است.
فرمت 
دستور در این کامپیوتر نیاز به سه قسمت آدرس دارد.
به این ترتبیب دستور در این کامپیوتر نیاز به سه قسمت آدرس دارد.
لذا دستور زبان اسمبلی برای جمع ریاضی ممکن است به صورت زیر نوشته شود.
ADD R1 , R2 , R3 
 که عملیات را انجام میدهد.
البته قسمتهای آدرس دستور را، میتوان از 3 به 2 تقلیل داد، بشرط اینکه ثبات مبدأ و مقصد یکی شود یعنی دستور بصورت ADD R1 , R2 باشد، که عملیات را انجام میدهد.
که در این صورت در این دستور فقط آدرس ثباتهای و قرار دارند.
در کامپیوترهای با چندین ثبات در CPU دستور MOV برای انتقال اطلاعات بین ثباتها بکار میرود.
مثلاَ MOV R1, R2 
که عملیات ( یا بستگی به نوع کامپیوتر) را انجام میدهند.
بنابراین دستورات انتقال نیاز به آدرس، برای ادرس ثبات مقصد، و ادرس ثبات منبع دارد.
فرمت دستور کامپیوترهائی که دارای چندین ثبات در CPU هستند دو یا 3 قسمت آدرس دارند.
بدیهی است هر قسمت آدرس میتواند ادرس یک ثبات پردازنده، یا ادرس یک خانه حافظه باشد.
به عنوان مثال دستور:
ADD R1 , X
 عملیات را مشخص میکند.
این دستور دارای دو آدرس یکی برای ثبات و دیگری X جهت آدرس یک خانه حافظه است.
در این کامپیوترها دستورات PUSH و POP دارای یک ادرس هستند مثلاَ دستور:
PUSH X
خانه حافظه به آدرس X را در بالای حافظه پشته قرار میدهد، و اشاره گر پشته SP ، بطور خودکار بهنگام میشود.
البته دستورات اجرائی در کامپیوتر با تشکیلات پشته نیازی به قسمت آدرس ندارند، چون عملیات برروی دو مقدار که بالای حافظه پشته هستند انجام میشود.
به عنوان مثال دستور:ADD در کامپیوترهای باتشکیلات حافظه پشته فقط دارای ناحیه کد احرایی میباشند، و نیازی به قسمت آدرس ندارند.
در حیقت برای اجرای این دستور دو مقدار بالای حافظه پشته استخراج میشود، با هم جمع میگردند، و نتیجه در حافظه پشته قرار داده میشود.
به این ترتیب در این دستور نیازی به قسمت آدرس نیست چون همه عملیات برروی بالای حافظه پشته انجام میشود.
البته بعضی کامپیوترها دارای تشکیلات CPU ، از مجموع سه فرم ذکرشده هستند .
به عنوان مثال میکروپروسسور 8080 دارای 7 ثبات CPU اسن که یکی از آنها اکومولیتور میباشد.
در این CPU ، تمام دستورات ریاضی، منطقی، بارکردن و ذخیره نمودن در حافظه برروی اکومولیتور AC انجام میشود.
بنابراین دستورات این CPU فقط دارای یک آدرس است، چون آدرس دیگر آدرس اکومولیتور است، که بدیهی میباشد و نیازی نیست که در دستور ذکر گردد.
ولی دستوراتی که اطلاعات بین دو ثبات را انتقال میدهند دارای دو قسمت ادرسس برای دو ثباتها میباشند.
علاوه براین، CPU مذکور دارای حافظه پشته و دستورات PUSH و POP میباشد.
البته این CPU دارای دستورات صفر آدرسی نیست، که این دستورات جزء مشخصات CPU های نوع حافظه پشته است.
برای بررسی اثر تعداد آدرسهای دستور کامپیوتر در برنامه کامپیوتری ما محاسبه عبارت زیر را : 
X=(A+B) (C+D)
با دستورات صفر آدرسی، یک آدرسی و سه آدرسی بررسی مینمائیم.
ما سمبولهای 
ADD ‘ SUB ‘ MUL ‘ و DIV را برای چهار عمل محاسباتی +،-، ،/ در نظر میگیریم.
و نماد MOVE را برای انتقال اطلاعات بین ثباتها و نمادهایLOAD وSORTE را جهت انتقال اطلاعات از حافظه به ثبات اکومولیتور AC و بالعکس در نظر میگیریم.
ما فرض میکنیم که عملوندها در آدرسهای AوB وC وD حافظه قرار دارند و نتیجه محاسبات نیز در آدرس X حافظه قرار خواهد گرفت.
دستورات سه آدرسی
در کامپیوترهای با فرمت دستورات سه آدرسی، هر قسمت آدرس را، برای مشخص نمودن یک ثبات پردازنده و یا آدرس یک عملوند در حافظه، تخصیص میدهد.
نمونههائی از دستورات سه آدرسی در یک برنامه اسمبلی برای محاسبه همراه با توضیحات هر دستور در زیر نشان داده شده است:
 در کامپیوترهای با فرمت دستورات سه آدرسی، هر قسمت آدرس را، برای مشخص نمودن یک ثبات پردازنده و یا آدرس یک عملوند در حافظه، تخصیص میدهد.
نمونههائی از دستورات سه آدرسی در یک برنامه اسمبلی برای محاسبههمراه با توضیحات هر دستور در زیر نشان داده شده است: ADD R1 , A , B ADD R2, C ,D MUL X , R1 , R2 فرض میگردد که کامپیوتر دارای دو ثبات پردازنده و است و یعنی عملوندی که در آدرس حافظه A قرار دارد.
یکی از محاسن فرمت سه آدرسی دستور، اینست که برنامه محاسبات ریاضی کوتاه میشود.
و اشکال آن اینست که فرم باینری دستور دارای بیتهای زیادی برای مشخص نمودن سه آدرس میباشد.
یک مثالی از کامپیوتری که دستورات سه آدرسی مصرف میکند کامپیوتر 170 Cyber است.
فرمت دستور در کامپیوتر مذکور، یا دارای سه قسمت برای آدرس ثباتها، دو یا دو قسمت جهت آدرس ثباتها و یک قسمت برای آدرس حافظه میباشد.
دستورات دو آدرسی دستورات دو آدرسی معمولترین فرمت دستور در کامپیوترها هستند در اینجا نیز قسمت آدرس میتواند یک ثبات پردازنده، یا یک خانه حافظه را مشخص نماید.
در این صورت برنامه محاسبه فرمول x مطابق زیر میشو A MOV R1 , ADD R1 , B MOV R2 ADD R2 , D MUL R1,R2 MOV X,R1 دستور MOV عملوند را از خانه حافظه به ثباتها و بالعکس منتقل مینماید.
دستورات یک آدرسی دستورات یک آدرسی، برای تمام عملیات برروی دادهها ثبات اکومولیتور AC را بکار میبرد.
البته برای محاسبات ضرب، و تقسیم نیاز به ثبات د یگری میباشد ولی ما در اینجا فرض میکنیم که ثبات اکومولیتور شامل نتیجه محاسبات است و نیازی به ثبات دیگر نمیباشد به این ترتیب برنامهای که مقدار را محاسبه نماید مطابق زیر است: در بنامه فوق عملیات بین ثابت اکومولیتور AC و خانه حافظه انجام میشو و T آدرس یک خانه از حافظه میباشد که برای ذخیره اطلاعات موقتی مورد نیاز است.
دستورات صفر آدرسی کامپیوترهای با تشکیلات حافظه پشته قسمت آدرس در دستورات جمع ADD و ضرب MUT ندارد( دستورات صفر آدرسی دارای قسمت آدرس نیستند).
ولی دستورات PUSH و POP دارای یک قسمت آدرس هستند که مشخص کننده عملوندی است که با حافظه پشته در ارتباط میباشد.
برنامه زیر محاسبه را در کامپیوتری با تشکیلات حافظه پشته نشان میدهد( TOS نشان دهنده بالای حافظه پشته است).
برای محاسبه عبارت ریاضی در کامپیوترهای با تشکیلات حافظه پشته لازم است که ابتدا عبارت ریاضی بفرم لهستانی معکوس تبدیل شود.
همانطوریکه ملاحظه میشود، برای یک برنامه مورد نظر مثلاَ محاسبه X برنامه با کامپیوترهای با دستورات سه آدرسی بسیار کوتاهتر از برنامه با دستورات یک آدرسی یا صفر آدرسی میباشد.
دستورات کامپیوترهای RISC پردازندههای RISC موقعیکه بخواهند با حافظه اربتاط برقرار کنند از دستورات STORE ( ذخیره کردن) و LOAD ( بار کردن) استفاده مینمایند، ولی بقیه دستورات بین ثباتهای CPU دستورات LOAD و STORE دارای یک قسمت آدرس ثبات و یک قسمت آدرس حافظه هستند ولی دستورات محاسباتی سه قسمت آدرس، برای ثباتها دارند.
به این ترتیب برنامه محاسبه مطابق زیر میشود.
در برنامه مذکور دستور باز کردن LOAD عملوند را از حافظه به ثبات CPU انتقال میدهد و دستورات جمع و ضرب برروی اطلاعات ثباتهای CPU ( بدون مراجعه به حافظه) انجام میشوند سپس نتیجه محاسباتی با دستور STORE در حافظه ذخیره میگردد.
کامپیوترهای RISC1 یکی از مسائل مهم در معماری کامپیوتر طراحی دستورات برای پروسور است.
در حقیقت انتخاب دستورات برای یک کامپیوتر بخصوص روشی که برنامه به زبان ماشین نوشته میشود را، مشخص مینماید البته کامپیوترهای اولیه بمنظور کم کردن سخت افزار، تعداد محدودی دستورات ساده داشتند و به همین ترتیب که مدارهای مجتمع(IC ) و سختافزار پیشرفت کرد تعداد دستورات و پیچیدگی دستورات بیش از 200 دستور دارند علاوه بر این با انواع دادهها و آدرسدهی های مختلف کار میکنند.
پیچیده تر کردن سختافزار و دستورات بیشتر دلائل متعددی دارد که از جمله این دلائل عبارتند از: به روز درآوردن و توسعه کامپیوتر، با قابلیتهای جدید، برای بدست آوردن مشتریهای بیشتر.
اضافه کردن دستورات برای اینکه برنامههی سطح بالا آسانتر به زبان ماشین ترجمه گردند.
وسوق به طرف ماشینهائی که کارهای نرمافزاری را با سختافزار انجام دهد.
کامپیوترهای باتعداد دستورات زیاد به نام کامپیوترهای با دستورات پیچیده CISC 2 دستهبنید میشوند.
در سلهای 1980 عدهای از طراحان کامپیوتر پیشنهاد نمودند که کامپیوترهایی با دستورات سادهتر و کنتر طراحی شوند بطوریکه دستورات CPU با سرعت بیشتر اجرا گردند، و حداقل مراجعه به حافظه را داشته باشند این نوع کامپیوترها به نام کامپیوترهای با دستورات تقلیل یافته RISC معروف شدند.
در این بخش ما مشخصات اصلی معماری کامپیوترهای CISC و RISC را مورد بحث قرار خواهیم داد.
مشخصات کامپیوترهای CISC در طراحی دستورات کامپیوتر نه فقط میبایستی به ساختار زبان ماشین توجه نمود بلکه مشخصاتی را که زبانهای سطح بالا تعیین مینمایند را میبایستی در نظر گرفت ترچمه برنامه از زبان سطح بالا به زبا ماشین توسط برنامه کامپایلر انجام میپذیرد.
یکی از دلائل تمایل به طراحی کامپیوترهای بادستورات پیچیده CISC ساده بودن عمل کامپایلر بالطبع بالا بردن کارائی کامپیوتر است وظیفه کامپایلر این است که هر عبارت زبان سطح بالا را تبدیل به یک سری دستورات زبان ماشین نماید.
بدیهی است اگر عبارات زبان سطح بالا مستقیماَ بوسیله دستورات زبان ماشین اجرا شوند وظیفه کامپایلر بسیار سادهتر خواهد بود.
هدف اصلی معماری CISC ان است که برای هر عبارت زبان سطح بالا یک دستور زبان ماشین وجود داشته باشد.
مثالی از معماری کامپیوترهای CISC کامپیوترهای VAX شرکت Digital Equipment و کامپیوترهای 370 ای.
بی.
ام میباشند.
یکی دیگر از مشخصات معماری کامپیوترهای CISC به کار بردن فرمت دستور با طول متغیر است.
به عنوان مثال دستوراتی که عملوندهای داخل ثباتها را نیاز دارند، ممکن است دو بایتی باشند ولی دستوراتی که دو آدرس حافظه در آنها قرار دارند ممکن است پنج بایتی باشد.
بنابراین اگر کلمه کامپیوتر ما 32 بیتی( 4بایت) باشد، دستور اول نصف کلمه را اشغال مینماید ولی دستور دوم یک کلمه بعلاوه حافظههای با طول کلمه ثابت نیاز به یک مدار رمزگشا دارد، که تعداد بایتهای استفاده شده هر کلمه را بشمارد و دستورات را بر حسب طول موج آنها در کلمات جای دهد.
در دستورات کامپیوترهای CISC محل عملوند در حافظه مستقیماَ در دستور مشخص میشود به عنوان مثال در دستور جمع ADD یک عملوند ممکن است از طریق آدرسدهی شاخص تعیین شود، و عملوند دوم از طریق ادرسدهی مستقیم مشخص گردد، و بالاخره در دستور ممکن است محل دیگری از حافظه برای مشخص کردن نتیجه جمع تعیین گردد.
به این ترتیب برای اجرای دستور فوق نیاز به سه بار مراجعه با حافظه میباشد.
بهرحال هر چه دستورات و نحوه آدرسدهی بیشتری در کامپیوتر وجدود داشته باشد سختافزار بیشتری برای پیاده سازی آنها مورد نیاز است که ممکن است باعث پایین آمدن سرعت محاسبات گردد.
بطور خلاصه مشخصات اصلی کامپیوترهای CISC بقرار زیرند: تعداد زیادی دستور مثلاَ بین 100 تا 250 دارند.
بعضی دستورات، که وظایفی خاصی را انجام میدهندکمتر مصرف میشوند.
گونههای زیادی حالتهای آدرسدهی دارند، مثلاَ بین 5 تا 20 حالت آدرسدهی ممکن است داشته باشند.
فرمت دستورات با طول متغیر دارند.
دستوراتی دارند که با عملوندهایی در حافظه کار میکنند.
مشخصات کامپیوترهای RISC اصولاَ معماری کامپیوترهای