MikeAssembler リファレンス - TD4

アーキテクチャ名

td4

概要

TD4は、書籍「CPUの創りかた」で題材となっているCPUである。

入出力

TD4は、4ビットの入力ポート1個と、4ビットの出力ポート1個を持つ。

レジスタ

TD4は、以下のレジスタを持つ。

命令セット

MikeAssemblerでは、以下の命令をサポートしている。
命令およびレジスタ名の大文字・小文字は区別しない。

Imは、4ビットの即値である。
通常の式による表現に加え、0101のように0/1を4個並べた2進数での表現が可能である。
即値は、機械語のmmmmの部分に反映される。

命令機械語 (ビット列)動作実行後のC (フラグ)
ADD A, Im0000 mmmmA ← A + Imキャリー
ADD B, Im0101 mmmmB ← B + Imキャリー
MOV A, Im0011 mmmmA ← Im0
MOV B, Im0111 mmmmB ← Im0
MOV A, B0001 0000A ← B0
MOV B, A0100 0000B ← A0
IN A0010 0000A ← 入力ポート0
IN B0110 0000B ← 入力ポート0
OUT Im1011 mmmm出力ポート ← Im0
OUT B1001 0000出力ポート ← B0
JMP Im1111 mmmmPC ← Im0
JNC Im1110 mmmmif (C == 0) PC ← Im0

JNC命令は必ず加算命令(ADD)の直後に実行しなければならないとされているが、MikeAssemblerではチェックを行わない。

なお、レジスタAの値を出力ポートに出力する命令は、TD4では定義されていない。

MOV命令の第2オペランド、およびOUT命令の第1オペランドにおけるaAbBは、レジスタとして扱われる。
(OUT A 命令は定義されていないため、エラーになる)
これらの場所でこれらを識別子として用いたい場合は、+bなどのようにすると良い。

関連リンク


戻る