مجموعه دستورالعمل
دستورالعمل‌ها > تعداد عملوندها

مجموعه‌های دستورالعمل ممکن است بر مبنای حداکثر تعداد عملوندهایی که به‌طور آشکار در دستورالعمل‌ها مشخص می‌شوند طبقه‌بندی شوند.

(در مثال زیر a , b و c، در واقع، آدرس‌های (مستقیم یا محاسبه شده) هستند که به سلول‌های حافظه ارجاع می‌شوند، در حالیکه، reg1 و موارد مشابه، همان رجیسترهای ماشین هستند)
C = A+B
صفر-عملوند (ماشین‌های فاقد آدرس) یا همان ماشین‌های پشته: تمام عملیات محاسباتی با استفاده از عنصر بالای پشته یا دو موقعیت در پشته رخ می‌دهند: push a , push b , add , pop c .
عمل C = A+B نیازمند چهار دستورالعمل است. برای ماشین‌های پشته اصطلاحات «صفر-عملوند» و «صفر-آدرس» به عملیات محاسباتی گفته می‌شوند و به تمام دستورالعمل‌ها گفته نمی‌شوند، زیرا دستورالعمل‌های تک-عملوندی push و pop برای دسترسی به حافظه استفاده می‌شوند.
یک-عملوند (ماشین‌های تک آدرسی ) یا همان ماشین‌های جمع‌کننده، که شامل رایانه‌های ابتدایی و بسیاری از میکروکنترلرهای کوچک می‌شود: اکثر دستورالعمل‌ها یک عملوند سمت راست (یک ثابت، رجیستر یا مکان حافظه) را، همراه با جمع‌کننده ی ضمنی به عنوان عملوند سمت چپ (و مقصد، درصورتیکه تنها باشد) مشخص می‌کنند: load a , add b , store c
عملیات C = A+B نیازمند سه دستورالعمل است.
دو عملوند- بسیاری از ماشین‌های CISC و RISC تحت این مقوله قرار می‌گیرند.
معماری CISC: ابتدا a را به c منتقل کن، سپس b را به c اضافه کن.
عملیات C = A+B نیازمند دو دستورالعمل است، که به شکل مؤثری، و بدون نیاز به یک دستورالعمل ذخیره‌سازی آشکار، نتیجه را ذخیره می‌کند.
معماری CISC- معمولاً ماشین‌ها محدود به یک عملوند حافظه به ازای هر دستورالعمل هستند: load a,reg1 ; add b,reg1 ; store reg1,c که نیازمند یک جفت بارگذاری/ذخیره برای هر گونه انتقال حافظه است، که جدا از این است که آیا حاصل add ، یک افزایش است که در مکان متفاوتی ذخیره شده‌است، مثلاً در C = A+B ، یا این که در مکان مشابهی از حافظه ذخیره شده‌است:A = A+B ،
عملیات C = A+B نیازمند سه دستورالعمل است.
معماری RISC- نیازمند بارگذاری‌های آشکار حافظه است و دستورالعمل‌ها به فرم load a,reg1; load b,reg2; add reg1,reg2; store reg2,c خواهند بود.
عملیات C = A+B نیازمند چهار دستورالعمل است.
سه-عملوند، که امکان استفاده مجدد بهتری از داده را فراهم می‌کند.
معماری CISC- یا یک دستورالعمل می‌شود: add a,b,c
عملیات C = A+B نیازمند یک دستورالعمل است.
معماری CISC- یا روی ماشین‌های محدود به دو عملوند حافظه به ازای هر دستورالعمل،
move a,reg1; add reg1,b,c;
عملیات C = A+B نیازمند دو دستورالعمل است.
معماری RISC- دستورالعمل‌های محاسباتی فقط از رجیسترها استفاده می‌کنند، بنابراین نیاز به دستورالعمل‌های آشکار دو-عملوندی بارگذاری/ذخیره داریم: load a,reg1 ; load b,reg2 ; add reg1+reg2->reg3 ; store reg3,c
عملیات C = A+B نیازمند چهار دستورالعمل است.
برخلاف دو-عملوند یا یک-عملوند، این حالت اجازه می‌دهد تا هر سه مقدار a, b، و c برای استفاده مجدد بیشتر، در رجیسترها موجود باشند.
عملوندهای بیشتر-برخی ماشین‌های CISC، اجازهٔ انواعی از حالت‌های آدرس دهی را می‌دهند که امکان استفاده از بیش از سه عملوند را فراهم می‌کند (رجیسترها یا دسترسی‌های حافظه)، مثلاً: دستورالعمل ازیابی چند جمله ای VAX "POLY".
به دلیل تعداد زیاد بیت‌های مورد نیاز برای کدگذاری سه رجیستر یک دستورالعمل سه-عملوندی، معماری‌های RISC که دارای دستورالعمل‌های ۱۶ بیتی هستند، تماماً دارای طراحی‌های دو-عملوندی هستند، نظیر: Atmel AVR, TI MSP43 و برخی نسخه‌های ARM Thumb. معماری‌های RISC که دارای دستورالعمل‌های ۳۲ بیتی هستند، معمولاً دارای طراحی‌های سه-عملوندی هستند، نظیر: ARM, AVR32, MIPS, Power آی اس ای و معماری‌های SPARC.

هر دستورالعمل تعدادی عملوند (رجیسترها، مکان‌های حافظه، یا مقادیر فوری) را "به طور آشکار" مشخص می‌کند. برخی دستورالعمل‌ها یک یا بیش از یک عملوند را به‌طور ضمنی فراهم می‌کنند، مثلاً از طریق ذخیره شدن در بالای یک پشته، یا در یک رجیستر غیر مستقیم. در حالتی که برخی از عملوندها به‌طور ضمنی داده می‌شوند، به عملوندهای کمتری در دستورالعمل نیاز هست. هنگامی که یک "عملوند مقصد" به‌طور آشکار مقصد را مشخص می‌کند، باید عملوند دیگری نیز فراهم شود. در نتیجه تعداد عملوندهای کدگذاری شده در یک دستورالعمل، ممکن است با تعداد آرگومان‌های مورد نیاز از نظر ریاضی برای یک عملیات منطقی یا محاسباتی (arity) تفاوت داشته باشد. عملوندها یا در نمایش "آپ کد" دستورالعمل، کدگذاری می‌شوند یا اینکه به صورت مقادیر یا آدرس، به دنبال آپ کد می‌آیند.