トップ よくある質問 作者ブログ お問い合わせ・ご注文

FullTr-11 命令セット

MOV A, imAレジスタに即値を代入
MOV B, imBレジスタに即値を代入
MOV C, imCレジスタに即値を代入
MOV A, [im]Aレジスタに、RAM内のimで指定されるアドレスに保存されている値を代入
MOV B, [im]Bレジスタに、RAM内のmで指定されるアドレスに保存されている値を代入
MOV C, [im]Cレジスタに、RAM内のimで指定されるアドレスに保存されている値を代入
MOV [im], ARAM内のimで指定されるアドレスにAレジスタの値を書く
MOV [im], CRAM内のimで指定されるアドレスにCレジスタの値を書く
ADD A, BA=A+B: Aレジスタの値とBレジスタの値の合計をAレジスタに代入
ADD C, imC=C+im: Cレジスタの値と即値の合計をCレジスタに代入
SUBA=A-B: Aレジスタの値からBレジスタの値を引いたものをAレジスタに代入
JMP im即値で指定されるアドレスにジャンプ
JMP [im]RAM内のimで指定されるアドレスに保存されている値のアドレスにジャンプ
JNC im直前の演算結果でキャリーが発生しなければ、即値のアドレスにジャンプ

FullTr-11はPICなどと同様のハーバードアーキテクチャです。
RAMとROMのアドレスが分離されており、プログラムはROMに格納されます。
命令は5bitで、この後に11bitのオペランドがついて、合計の命令長は16bitになります。
ROMは1024個のスイッチで構成されており、64命令を格納できます。
RAMは11bitが4個の44bitの容量です。
ROM,RAMともアドレス幅が11bitであるため、原理的には2.75KByteまで拡張可能です。
上記のニーモニックを使って記述したプログラムをアセンブラにかけると、ビット単位の0と1で表したマシン語を書いたファイルが生成されます。これをスイッチで入力していきます。