トップQs
タイムライン
チャット
視点

OISC

1つの命令のみを使用する抽象機械 ウィキペディアから

Remove ads

OISC(One-instruction set computer)は、命令が唯一のコンピュータである。 唯一の命令の一例としてSubleq(subtract and branch if less or equal to zero、減算して0以下なら分岐)がある。 いくつかのOISCは、チューリング完全である。URISC(Ultimate RISC、究極のRISC)とも[1]

Remove ads

利用

OISCは、実用には向いていないといえる。 いくつかの難解プログラミング言語としても実装されている。

OISCを使用しプログラミングを行う際は、初期の設定やメモリマッピングも重要である。

Subleq

Subleq命令は、3つのパラメータを持つ。Subleq(a,b,c)と表現する。Subleqはアドレスbの内容からアドレスaの内容を減算し、その結果をアドレスbに格納し、結果が0以下ならばcに制御を移す。

命令がひとつしかないのでオペコードは必要ない(0ビット)。パラメータ a, b, c を3個の連続したワードであらわす。以下に一例を示す。

  ADDRESS   a b c
ADDRESS 00: 3 4 6
ADDRESS 03: 7 7 7
ADDRESS 06: 3 4 0

このコードの場合、以下の処理が行われる。

  1. 0から実行する
  2. アドレス4の内容(7) − アドレス3の内容(7)を計算し、結果の0をアドレス4に格納
  3. 結果が0以下なので、6に移動
  4. アドレス4の内容(0) − アドレス3の内容(7)を計算し、結果の-7をアドレス4に格納
  5. 結果が0以下なので、0に移動
  6. 最初から繰り返し

また、Subleqのソースコードを書く際に、ソースコードを見やすくするために構文を少し変える場合もある。

Remove ads

その他のOISCの例である。

  • BitBitJump
  • ByteByteJump
  • Blues Machine
  • DJN

関連項目

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads