Bir işlemcinin talimat setine bir göz attıysanız, bunları gruplamanın birkaç yolu vardır. Örneğin, tüm ADDtalimatlar ve tüm XORtalimatlar birlikte gruplandırılabilir .
Aynı komutun her bir grubunda, bellekte veya kayıtlarda çalışan sürümler olabilir. İşlemcinin sahip olduğu kayıt sayısını etkili bir şekilde tanımlayan bu alt gruplamadır.
8-bitlik bir varsayımsal bir örnek olarak, let Diyelim $Axtalimatları olabilir ADDtalimatları ve $Cxolabilecek XORtalimatlar. Bu tasarımla, işlenenleri tanımlamak için sadece dört bit kaldı!
- Birinin sadece dört genel amaçlı kaydı olabilir ve birini tanımlamak için iki bit, diğerini tanımlamak için iki bit kullanabilir.
- Ya da, biri "özel" varyantları ayırt etmek için ilk biti ve diğer 3 biti, akümülatörle çalışacak sekiz kayıttan hangisinin (
$x0akümülatörün kendisi olabileceğini) tanımlamak için kullanılabilir .
- Veya bu sayıdan daha fazla kayıt olabilir - ancak hangi kayıtların hangi talimatlar için erişilebilir olduğunu sınırlar.
Tabii ki, 8 bitlik komut setlerini geçtik. Ama yine de, bu mantık geçmişte kayıt kümelerini tanımlamaya yardımcı oldu - bunu gelecekte yapmaya devam edecektir.
DÜZENLE (istendiği gibi)
Dört bit talimat içindir top Say: ADD, SUB, XOR, MOV, CMPvb burada 16 olasılık vardır. Sonra, kayıt-to-kayıt olanlar talimatlar için (örneğin mantıklı ADD Rx,Ry, belirtmek gerekir) Rxve Ry. Diyelim ki sonraki iki bit xve son iki bit içindir y. Böylece:
ADD R1, R2 => 'ADD' + 'R1' + 'R2' => $A0 + $04 + $02
Böyle bir kaydı tanımlamak için yalnızca iki bit ile, toplam dört kayıt için sadece yeriniz var!
Bir kenara, bazı kayıt kombinasyonlarının bir anlamı olmadığını unutmayın. Örneğin, MOV Rx, Rx(hiçbir şey yapmaz) ve SUB Rx, Rx(daima üretir 0). Bunlar özel durum talimatları haline gelebilir:
SUB Rx, Rxolabilir NOT Rx- tek işlenen bir talimat.
MOV Rx, RxMOVikinci bir baytı anında değer olarak alan bir komut haline gelebilir MOV Rx, #$yy.
Bu şekilde, programcı için daha büyük bir talimat seti sağlamak için, aksi takdirde işe yaramaz veya saçma talimatlar için delikleri doldurarak talimat haritası ile "oynayabilirsiniz". Ancak sonuçta, komut kümesi yazmaç kümesini tanımlar.