この世のCPUを食べ尽くすのだ! おまけ
~あんたCPUなんか創ってどうするのよ?! Vol.3~
2018/10/8
技術書典5 け39
おまけ TD4EX3の命令コード表
TD4EX3の命令コードはTD4とほとんど同じであるため「この世のCPUを食べ尽くすのだ!」の本文中には書かなかったのですが、いくらなんでも不親切すぎると考え直し、チラシとして配布しました。
その表を掲載します。
命令 | 1バイト目 | 2バイト目 | 説明 | |||
---|---|---|---|---|---|---|
bit 7~4 | bit 3~0 | |||||
ADD | A, | Im | 0000 | Im | Aレジスタの内容に命令中で指定された定数(Im)を加算 | |
MOV | A, | B | 0001 | 0000 | AレジスタにBレジスタの内容を転送 | |
IN | A, | [Adr] | 0010 | Adr | RAMのAdr番地からデータを取り込み、Aレジスタに格納 | |
MOV | A, | Im | 0011 | Im | Aレジスタに命令中で指定された定数(Im)を格納 | |
MOV | B, | A | 0100 | 0000 | BレジスタにAレジスタの内容を転送 | |
ADD | B, | Im | 0101 | Im | Bレジスタの内容に命令中で指定された定数(Im)を加算 | |
IN | B, | [Adr] | 0110 | Adr | RAMのAdr番地からデータを取り込み、Bレジスタに格納 | |
MOV | B, | Im | 0111 | Im | Bレジスタに命令中で指定された定数(Im)を格納 | |
OUT | B, | [Adr] | 1001 | Adr | Bレジスタの内容をRAMのAdr番地に出力 | |
JNC | Im | 1110 | Im | Im | キャリー(C)がゼロならば指定アドレス(Im)にジャンプ | |
JMP | Im | 1111 | Im | Im | 指定アドレス(Im)にジャンプ |
TD4との違いは、IN命令とOUT命令のオペランドとしてRAMのアドレスを指定できる点です。