[CPUの創りかた]で定義されている TD4 を参考にして、モックを作成する。
| 汎用レジスタ | 4bit x 2 | | アドレス空間 | 4bit | | PC | 4bit | | フラグレジスタ| 1bit | | 算術演算 | 加算(4bit)|
処理できるデータは 4bit のみで、オペランドも 4bit です。
| | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | ADD A,Im | 0 | 0 | 0 | 0 | Im| Im| Im| Im| | MOV A,B | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | IN A | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | MOV A,Im | 0 | 0 | 1 | 1 | Im| Im| Im| Im| | MOV B,A | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | | ADD B,Im | 0 | 1 | 0 | 1 | Im| Im| Im| Im| | IN B | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | | OUT B | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | | OUT Im | 1 | 0 | 1 | 1 | Im| Im| Im| Im| | JNC Im | 1 | 1 | 1 | 0 | Im| Im| Im| Im| | JMP Im | 1 | 1 | 1 | 1 | Im| Im| Im| Im|
A <- A + Im
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 0 | 0 | 0 | Im| Im| Im| Im|
A <- B
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
A <- (input port)
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
A <- Im
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 0 | 1 | 1 | Im| Im| Im| Im|
B <- A
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
B <- B + Im
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 1 | 0 | 1 | Im| Im| Im| Im|
B <- (input port)
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
(output port) <- B
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
(output port) <- Im
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 1 | 0 | 1 | 1 | Im| Im| Im| Im|
PC <- Im , If Not Carry
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 1 | 1 | 1 | 0 | Im| Im| Im| Im|
PC <- Im
|bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |value| 1 | 1 | 1 | 1 | Im| Im| Im| Im|