OISC
この記事は英語版の対応するページを翻訳することにより充実させることができます。(2021年2月) 翻訳前に重要な指示を読むには右にある[表示]をクリックしてください。
|
OISC(One-instruction set computer)とは、命令が1つのコンピューターのことである。 高度なメモリマッピングの場合、算術演算は複雑な処理をも可能とする。 そのため、一部の実装では、唯一の命令がSubleq(subtract and branch if less or equal to zero、減算と0以下なら分岐)となる場合がある。 また、いくつかのOISCを使用する言語は、チューリング完全である。 OISCは、URISC(Ultimate RISC、究極のRISC)と表記される場合もある。
利用
編集OISCは、命令が1つのみのため、実用には向いていないといえる。 また、OISCは、いくつかの難解プログラミング言語で使用されている。
さらに、OISCを使用しプログラミングを行う際は、初期の設定やメモリマッピングが重視される。
Subleq
編集
Subleqは、通常3つのパラメータを持つ。 基本的なSubleqの構文は、Subleq(a,b,c)
である。Subleqはbからaを減算し、 bに結果を格納し、結果が0以下の場合にcのアドレスに制御を移す。
ADDRESS a b c
ADDRESS 00: 7 7 7
ADDRESS 04: 5 1 0
ADDRESS 07: 4 3 4
このコードの場合、以下の処理が行われる。
- 7-7を計算し、結果の0をbに格納
- bが0以下なので、アドレス7に移動
- 4-3を計算し、結果の1をbに格納
- 先がないので終了
また、Subleqのソースコードを書く際に、ソースコードを見やすくするために構文を少し変える場合もある。
マシンアーキテクチャ
編集以下はOISCアーキテクチャの例である。
- BitBitJump
- ByteByteJump
- Blues Machine
- DJN