ics3
T1
1
\(\lfloor \log_2(32786)\rfloor = 15\)
最少 15 位。
2
- 5 位 opcode
- 两个寄存器共 6 位
- 1 位指示指令为立即数的加
- 剩 4 位立即数
补码,最大数为 \(2^3-1=7\)
3
- 5 位 opcode
- 寄存器 3 位
- 剩 8 位 PCoffset
地址范围 \([PC-256,PC+255]\)
T2
1
- Fetch 从内存中获取指令,使用 PC 中的地址。然后将PC递增,指向下一条指令。
- Decode 对获取的指令进行译码,确定操作码及相关操作数。此阶段识别要执行的操作及将要访问的寄存器或内存位置。
- Evaluate Address 如果指令需要访问内存,通过偏移量等,计算操作数的有效地址。
- Fetch Operands 从指定的寄存器或内存位置获取指令所需的操作数。
- Execute 执行指令所指定的实际操作。
- Store Result 将执行结果写回到指令指定的目标,寄存器或内存位置。
2
| Opcode | Fetch | Decode | Evaluate Address | Fetch Operands | Execute | Store Result |
|---|---|---|---|---|---|---|
| ADD | 1 | 1 | 1 | 1 | 1 | |
| AND | 1 | 1 | 1 | 1 | 1 | |
| ST | 1 | 1 | 1 | 1 | 1 | 1 |
| STR | 1 | 1 | 1 | 1 | 1 | 1 |
| LDI | 1 | 1 | 1 | 1 | 1 | 1 |
| LD | 1 | 1 | 1 | 1 | 1 | 1 |
| LEA | 1 | 1 | 1 | 1 | 1 | |
| BR | 1 | 1 | 1 | |||
| JMP | 1 | 1 | 1 |
3
LEA:6
ADD:6
ST:106
AND:6
ADD:6
STR:205
LDI:106
总共:441
4
ADD 指令
| FETCH | DECODE | EVALUATE ADDRESS | FETCH OPERANDS | EXECUTE | STORE RESULT | |
|---|---|---|---|---|---|---|
| PC | RW | |||||
| IR | W | R | R | R | R | |
| MAR | W | |||||
| MDR | ||||||
| MEM | R | |||||
| registers | R | W | W | |||
| NZP | W |
STR 指令
| FETCH | DECODE | EVALUATE ADDRESS | FETCH OPERANDS | EXECUTE | STORE RESULT | |
|---|---|---|---|---|---|---|
| PC | RW | |||||
| IR | W | R | R | R | R | R |
| MAR | W | W | ||||
| MDR | W | |||||
| MEM | R | W | ||||
| registers | R | R | ||||
| NZP | W |
JMP 指令
| FETCH | DECODE | EVALUATE ADDRESS | FETCH OPERANDS | EXECUTE | STORE RESULT | |
|---|---|---|---|---|---|---|
| PC | RW | W | ||||
| IR | W | R | R | R | ||
| MAR | W | |||||
| MDR | ||||||
| MEM | R | |||||
| registers | ||||||
| NZP |
5
除了前 5 个周期外,每个周期处理完一个指令。
共 995 个。
T3
1
7
2
x3000: 1101 000 000 0 00 000
x3001: 0001 000 000 1 00001
x3002: 0001 010 001 0 00 000
x3003: 0001 010 001 0 00 010
x3004: 1001 010 010 111111
x3005: 0000 010 000000001
x3006: 1111 0000 00100101
3
- 引入一个新的操作码用于 XOR 指令,将 XOR 添加到指令集
- 更新指令解码器,识别新的 XOR 操作码,并将其路由到适当的执行路径。
- 修改控制逻辑,能向 ALU 发出执行 XOR 操作的信号。
- 在 ALU 内部实现逻辑电路,添加 XOR 操作
- 更新汇编器,识别新的 XOR 指令并生成适当的机器代码。
T4
| R/W | MAR | MDR |
|---|---|---|
| W | x4000 | 11110 |
| R | x4003 | 10110 |
| W | x4001 | 10110 |
| R | x4002 | 01101 |
| W | x4003 | 01101 |
memory1:
01101
11010
01101
10110
11110
memory2:
11110
10110
01101
10110
11110
memory3:
11110
10110
01101
01101
11110
T5
| X | Does the program halt? | Value stored in R0 |
|---|---|---|
| 000000010 | y | 2 |
| 000000001 | y | 3 |
| 000000000 | y | 6 |
| 111111111 | n | |
| 111111110 | n |

浙公网安备 33010602011771号