ゼロレジスター

読み:ゼロレジスター
品詞:名詞

内容が常に0であるレジスターのこと。

目次

ソースとして使用した場合は常に0が読み出される。デスティネーションとして使用した場合は、その結果が破棄される。

RISCなど、特に3オペランド命令に対応するマイクロプロセッサーで用意されることの多いレジスターで、一般には汎用レジスターの一つをゼロレジスターとする。

例えば、R0〜R31まで32個用意される汎用レジスターのうち、R0をゼロレジスターとするような製品がある。

こうして、3オペランド命令しかない中でも、オペランドが二つで充分な演算をする際にゼロレジスターを用いることで演算を行なうことができる。

使用例

ゼロレジスターを0とすると、例えば、A←Bという代入命令は、A←B+0という加算命令や、A←B Or 0という論理演算で書くことができる。

ビットテスト命令も、0←A And Bという論理演算で書くことができ、結果は従来通りフラグレジスターに得られる。

ゼロレジスターを持たない設計のプロセッサーと比較して、必要となる基本の命令セマンティクスは維持しながら、実際の実装上の命令数を削減することが可能で、もって回路がコンパクトになるため、RISCでよく採用されている。

ハードウェア

ゼロレジスターは本来記憶素子があるべきところに0レベルへの配線が付けられているだけで、回路上特別扱いはされていないのが普通である。

読み出せば常に0になり、書き込んでも何も起こらない(記憶素子が無い以上、それは無視される)。

日立(後のルネサス)のSuperHでも、当初はなかったが、SH-5からゼロレジスターが新設された。

ARMでも当初はなかったが、64ビットのAArch64ステートで採用された新命令セット「A64」からゼロレジスターが新設された。

ソフトウェア

書き込んでも何も起こらないため、ここへの書き込み命令をNOPとするプロセッサーもある。

例えばMIPSでは、左論理シフト(SLL)命令の一つ「sll r0, r0, r0」をNOP命令としている。機械語は0x00000000である。

関連する用語
RISC
3オペランド命令
NOP

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club