命令セット
| 00001 | (1) | LOAD n | n番地の内容をアキュムレータにコピーする。 例:3番地に10が入っている状態で、LOAD 3 ⇒アキュムレータの内容が10になる。 |
| 00010 | (2) | LOADI n | nをアキュムレータに入れる。 例:LOADI 10 ⇒アキュムレータの内容が10になる。LOAD命令と違うのは、メモリを参照しない点。ただし、即値の範囲は8ビット。 |
| 00011 | (3) | STORE n | アキュムレータの値をn番地に格納する。なお、メモリは16ビットなので、アキュムレータの下位16ビットのみをメモリに格納する。アキュムレータの値が16ビットより大きい場合は、一度にアキュムレータの値全てを一つのメモリに格納することはできない。 例1:アキュムレータの値が10である状態で、STORE 5 ⇒メモリの5番地の内容が10になる。 例2:アキュムレータの値が65538である状態で、STORE 5 ⇒アキュムレータを2進数に直すと、 0000 0000 0000 0001 0000 0000 0000 0010 となる。上で書いたように、STORE命令は下位16ビットをメモリに格納するので、メモリの5番地の内容は2になる。 |
| 00100 | (4) | SHIFTL n | アキュムレータの内容を左にnビットシフトする。 例:アキュムレータの値が6のとき、SHIFTL 3 ⇒アキュムレータは6(2進数に直すと110) ⇒左に3ビットシフトして、110000になる(10進数に直すと48) |
| 00101 | (5) | SHIFTR n | アキュムレータの内容を右にnビットシフトする。右からは最上位ビットを詰める。 |
| 00110 | (6) | ADD n | n番地の値をアキュムレータの値に加える。 |
| 00111 | (7) | SUB n | アキュムレータの値からn番地の値を引く。 |
| 01000 | (8) | MUL n | アキュムレータの値にn番地の値を掛ける。 |
| 01001 | (9) | DIV n | アキュムレータの内容をn番地の値で割り、その商をアキュムレータの下位16ビットに、余りを上位16ビットに。 例1:アキュムレータに6、10番地に2がある状態でDIV 10 ⇒アキュムレータの値が3になる。 例2:アキュムレータに5、10番地に2がある状態でDIV 10 ⇒商が下位16ビット、余りが上位16ビットなので、アキュムレータの値は2進数で以下の値になる 0000 0000 0000 0001 0000 0000 0000 0010 この値は、10進数だと65538。商または余りのみを取り出したい場合には、このあとSHIFTLやSHIFTR命令を使う。 |
| 11011 | (27) | J n | n番地にジャンプ。 例:J 10 ⇒プログラムカウンタの内容が10になる。 |
| 11100 | (28) | JM n | アキュムレータの値が負の時にn番地にジャンプ。 例:JM 10 ⇒アキュムレータの値が負だったら、プログラムカウンタの内容が10になる。それ以外の場合は、プログラムカウンタの値が1増える。 |
| 11101 | (29) | JZ n | アキュムレータの値がゼロならばn番地にジャンプ。 |
| 11110 | (30) | IN n | 入力装置(装置番号0)からの一文字分のコードをアキュムレータの下位8ビットに読み込む。nには装置番号(0)を指定する。 |
| 11111 | (31) | OUT n | アキュムレータの下位8ビットのデータを文字コードとして出力装置に送る。nには装置番号(9)を指定する。 |
| 01010 | (10) | LOADX n | n+rx(インデックスレジスタの内容)の指すメモリアドレスの内容をアキュムレータにコピーする。 例:インデックスレジスタに5が入っている状態でLOADX 10 ⇒15番地の内容をアキュムレータにコピー。 |
| 01011 | (11) | MOVAX n | nによらず、アキュムレータの内容をインデックスレジスタにコピーする。 |
| 01100 | (12) | ADDX n | (n+rx)番地の値をアキュムレータに加える。 |
| 01101 | (13) | SUBX n | アキュムレータから(n+rx)番地の値を引く。 |
| 01110 | (14) | MULX n | アキュムレータに(n+rx)番地の値を掛ける。 |
| 01111 | (15) | DIVX n | アキュムレータを(n+rx)番地の値で割る。 |
| 10000 | (16) | JX n | n+rx番地にジャンプ。 |
| 10001 | (17) | JMX n | アキュムレータの値が負の時に(n+rx)番地にジャンプ。 |
| 10010 | (18) | JZX n | アキュムレータの値がゼロならば(n+rx)番地にジャンプ。 |
| 10011 | (19) | STOREX n | アキュムレータの値を(n+rx)番地に格納する。 |
| 00000 | (0) | STOP n | nによらす、計算機を停止する。この命令は値nのデータとして使用。 |