あんたCPUなんか創ってどうするのよ?! Vol.1 第6章

~TD4とかいうCPUがあまりにも残念だったので拡張してみた~

2016/8/14
コミックマーケット C90 3日目 西g16b

第6章 TD4EX2のソフトウェア

TD4EX2はあくまでもTD4の拡張であるため、ジャンプ命令と条件ジャンプ命令以外は何も変わりません。さすがにTD4用のソフトウェアをそのまま走らせるのは無理ですが、ジャンプ命令と条件ジャンプ命令だけを変更すれば簡単にTD4EX2で実行できます。

第6章 第1節 TD4EX2の命令一覧

TD4EX2の命令を以下に示します。

命令

1バイト目

2バイト目

説明

bit 7~4

bit 3~0

ADD A, Im

0000

Im

 

Aレジスタの内容に命令中で指定された定数(Im)を加算

MOV A,B

0001

0000

AレジスタにBレジスタの内容を転送

IN A

0010

0000

入力ポートからデータを取り込み、Aレジスタに格納

MOV A, Im

0011

Im

Aレジスタに命令中で指定された定数(Im)を格納

MOV B,A

0100

0000

BレジスタにAレジスタの内容を転送

ADD B, Im

0101

Im

Bレジスタの内容に命令中で指定された定数(Im)を加算

IN B

0110

0000

入力ポートからデータを取り込み、Bレジスタに格納

MOV B, Im

0111

Im

Bレジスタに命令中で指定された定数(Im)を格納

OUT B

1001

0000

Bレジスタの内容を出力ポートに出力

OUT Im

1011

0000

命令中で指定された定数を出力ポートに出力

JNC Im

1110

Im

Im

キャリー(C)がゼロならば指定アドレス(Im)にジャンプ

JMP Im

1111

Im

Im

指定アドレス(Im)にジャンプ

ジャンプ命令と条件ジャンプ命令だけが2バイト命令になっている点に注意してください。ジャンプ先アドレス(Im)の指定方法は、命令1バイト目の下位4ビットがジャンプ先アドレスのbit0~3、命令2バイト目全体がジャンプ先アドレスのbit4~11となります。