Dalam prosesor sebelumnya, tidak semua register sama:
- Tidak ada cukup ruang pada chip untuk memiliki unit penambah untuk setiap register.
- Dengan 8 bit, tidak ada cukup opcodes yang tersedia untuk semua kemungkinan kombinasi sumber dan tujuan.
Jadi dengan asumsi bahwa satu register spesifik selalu terlibat ketika adder terlibat, membuat chip lebih kompleks dan opcode lebih pendek.
Misalnya 6510 (digunakan dalam Commodore 64) hanya bisa menambahkan menggunakan register A, dan pengindeksan menggunakan X atau Y. Ada instruksi INC X dan INC Y, tetapi tidak ada INC A.
Karena register memiliki penggunaan yang berbeda, mnemonik dipilih yang mencerminkan penggunaannya. Misalnya A, X, dan Y di 6510 (bukan A, B, dan C).
Nama-nama dalam 8086 dipilih untuk mencerminkan penggunaannya juga. Dengan 4 register tujuan umum, logis untuk menamakannya AX, BX, CX, dan DX. Register pengindeksan tambahan disebut BP dan SP (mnemonic: Base Pointer, Stack Pointer).
Karena banyak opcode diperpanjang hingga 16 bit, ada beberapa ruang untuk menunjukkan yang mana dari empat register yang digunakan. Namun, beberapa alasan historis masih berlaku, karena CX sedikit istimewa: REP dan sejenisnya, yang merupakan opcodes 8 bit, selalu menggunakan CX sebagai penghitungnya. Mnemonic sederhana, CX = Counter, membantu untuk mengingat mana yang digunakan.
Opcode untuk penerus ke 8086 harus kompatibel ke belakang, dan berantakan karena opcode panjang variabel. Ketika bus 32 bit menjadi lebih umum, prosesor dengan panjang opcode tetap dicoba. Ini menyederhanakan bagian decoding dari CPU, yang membebaskan ruang yang dapat digunakan untuk misalnya register lebih banyak.
Prosesor yang mengikuti alur pemikiran ini disebut prosesor RISC (Reduced Instruction Set CPU), berbeda dengan CISC (Complex Instruction Set CPU).
Lebih banyak register menghasilkan lebih sedikit tumpahan ke memori. Pada dasarnya, register adalah cache tercepat yang tersedia, jadi menambah jumlah register adalah ide yang bagus, bahkan saat ini. Kurangnya instruksi khusus (mudah-mudahan lebih dari) dikompensasi oleh instruksi sederhana yang lebih cepat.
Memperbaiki panjang opcode 32 bit memiliki ruang yang cukup untuk memasukkan sumber, sumber kedua, operasi, dan tujuan. SPARC berhasil memeras 5 bit untuk masing-masing sumber, sumber kedua, dan tujuan, dan karenanya 32 register terlihat pada saat yang sama.
32 register terlalu banyak untuk menggunakan huruf, dan mereka sebagian besar tetap sama, jadi memberi nomor adalah pilihan yang jelas. 'R' digunakan untuk membedakan mereka dari konstanta 0..31, dan 'R' adalah mnemonik yang mudah untuk Register. Karena itu: R0..R31.
Selama bertahun-tahun, Pentium dan para penggantinya telah mempertahankan kepatuhan yang mundur. Namun, banyak dari ide RISC yang lebih berhasil juga digabungkan. Seringkali, instruksi baru seperti RISC akan berjalan lebih cepat daripada versi yang kompatibel ke belakang.
Jumlah register juga ditingkatkan oleh Intel, untuk mengurangi jumlah akses memori.
Dan ternyata, Intel akhirnya sudah mulai menggunakan notasi-R. Kompatibilitas mundur akan memastikan bahwa AXE, BX, ... akan tetap ada, tetapi saya berani bertaruh bahwa AXE hanya sinonim untuk misalnya R0.
Penafian : Di atas adalah pandangan saya tentang sejarah. Ini akan menjadi tidak lengkap karena saya tidak ada untuk menyaksikan bagian awal sejarah secara langsung. Meskipun demikian, saya harap ini bermanfaat bagi sebagian orang.