[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|