[CPUの創りかた]で定義されている TD4 を参考にして、モックを作成する。
|
data |
| 汎用レジスタ |
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 |