หากคุณดูชุดคำสั่งของโปรเซสเซอร์มีหลายวิธีในการจัดกลุ่ม ตัวอย่างเช่นADDคำแนะนำทั้งหมดอาจถูกจัดกลุ่มเข้าด้วยกันและXORคำแนะนำทั้งหมด
ภายในแต่ละกลุ่มของคำแนะนำเดียวกันอาจมีรุ่นที่ทำงานในหน่วยความจำหรือลงทะเบียน นี่คือการจัดกลุ่มย่อยที่กำหนดจำนวนการลงทะเบียนที่โปรเซสเซอร์มีประสิทธิภาพ
เป็นตัวอย่างสมมุติ 8 บิตสมมติว่า$Axคำแนะนำอาจเป็นADDคำแนะนำและ$Cxอาจเป็นXORคำแนะนำ ด้วยการออกแบบนี้มีเพียงสี่บิตที่เหลือเพื่อกำหนดตัวถูกดำเนินการ!
- หนึ่งอาจมีเพียงสี่ลงทะเบียนวัตถุประสงค์ทั่วไปและใช้สองบิตเพื่อกำหนดหนึ่งและสองบิตเพื่อกำหนดอื่น ๆ
 
- หรืออาจใช้บิตแรกเพื่อแยกแยะความแตกต่างของ "พิเศษ" และอีก 3 บิตเพื่อกำหนดว่าการลงทะเบียนใดแปดตัวที่จะทำงานกับตัวสะสม ( 
$x0อาจเป็นตัวสะสมเอง) 
- หรือหนึ่งอาจมีจำนวนการลงทะเบียนมากกว่านี้ - แต่จากนั้น จำกัด การลงทะเบียนที่สามารถเข้าถึงคำแนะนำได้
 
แน่นอนเรามีชุดคำสั่ง 8 บิตที่ผ่านมา แต่ถึงกระนั้นตรรกะนี้ช่วยกำหนดชุดลงทะเบียนในอดีต - มันจะทำต่อไปในอนาคต
แก้ไข (ตามที่ร้องขอ)
กล่าวว่าด้านบนสี่บิตมีการเรียนการสอน: ADD, SUB, XOR, MOV, CMPฯลฯ มีความเป็นไปได้ 16 ที่นี่มี แล้วสำหรับคำแนะนำเหล่านั้นที่ลงทะเบียนเพื่อลงทะเบียนทำให้รู้สึก (เช่นADD Rx,Ry) คุณจะต้องระบุและRx Ryพูดสองบิตต่อไปมีการและสองคนสุดท้ายมีการx yดังนั้น:
ADD R1, R2  =>  'ADD' + 'R1' + 'R2' => $A0 + $04 + $02
ด้วยสองบิตเท่านั้นในการกำหนดรีจิสเตอร์เช่นนี้คุณมีที่ว่างสำหรับการลงทะเบียนทั้งหมดสี่รายการ!
นอกจากนี้คุณจะทราบว่าชุดค่าผสมของการลงทะเบียนบางรายการไม่สมเหตุสมผล ตัวอย่างเช่นMOV Rx, Rx(ไม่ทำอะไรเลย) และSUB Rx, Rx(สร้างเสมอ0) สิ่งเหล่านี้อาจกลายเป็นคำแนะนำกรณีพิเศษ:
SUB Rx, Rxอาจกลายเป็นNOT Rx- คำสั่งตัวถูกดำเนินการเดียว 
MOV Rx, Rxอาจจะกลายเป็นคำสั่งที่ใช้ไบต์ที่สองเป็นค่าทันทีตีความว่าเป็นMOVMOV Rx, #$yy 
ด้วยวิธีนี้คุณสามารถ "เล่น" ด้วยแผนที่คำแนะนำเติมลงในรูสำหรับคำแนะนำที่ไร้ประโยชน์หรือ - ไร้ความหมายเพื่อจัดเตรียมชุดคำสั่งที่ใหญ่กว่าสำหรับโปรแกรมเมอร์ แต่ท้ายที่สุดชุดคำสั่งจะกำหนดชุดรีจิสเตอร์