Zero register atau Register nol adalah register prosesor yang selalu bernilai nol saat dibaca dan tidak mengalami perubahan keadaan saat ditulis. Register jenis ini ditemukan dalam berbagai arsitektur set instruksi, termasuk CDC 6600, MIPS, SPARC, Alpha, ARM64, dan RISC-V.[1]
Register nol menyediakan konstanta nol yang dapat digunakan secara langsung dalam berbagai instruksi, seperti operasi perbandingan atau percabangan berbasis nilai nol. Penyediaan konstanta ini melalui register memungkinkan penyederhanaan rancangan instruksi tanpa memerlukan opcode khusus, meskipun konsekuensinya adalah pengalokasian satu register khusus untuk fungsi tersebut.
Beberapa arsitektur memilih untuk mengimplementasikan nilai nol melalui variasi instruksi khusus, yang memerlukan logika tambahan pada dekoder instruksi. Sebaliknya, penggunaan register nol dapat menyederhanakan desain arsitektur set instruksi, meskipun berpotensi mengurangi jumlah register umum yang tersedia. Dalam pengembangan RISC-V, penyertaan register nol disebut sebagai salah satu faktor yang berkontribusi pada penyederhanaan keseluruhan arsitektur set instruksi.
Arsitektur x86 tidak menyediakan register nol khusus, sedangkan ARM memperkenalkan register nol pada varian ARM64. Beberapa arsitektur lain, seperti IBM System/360 hingga z/Architecture serta POWER/PowerPC/Power ISA, tidak memiliki register nol permanen, tetapi mendefinisikan perilaku register yang bernilai nol ketika digunakan dalam konteks tertentu, seperti sebagai register indeks.
Referensi
sunting- ^ Patterson, David. The RISC-V Reader: An Open Architecture Atlas (Edisi Beta Ed., 0.0.1). hlm. 18.
Pranala luar
sunting- Mashey, John (8 August 1998). "Top 10 Mistakes in Computer Architecture".
- "RISC-V Spec" (PDF).