1 | 0: li r0, 10 # 这里是十进制的10 |
继续执行上述的指令
题目
我们用(PC, r0, r1, r2, r3)的格式来记录寄存器的值
1 | >PC r0 r1 r2 r3 |
尝试继续执行指令, 记录寄存器的状态变化过程. 你现执行到最后时, 处理器处于什么样的状态? 上述数列的求和结果在哪个寄存器中?
1 | (6, 10, 2, 3, 1) |
计算10以内的奇数之和
题目
尝试用上述指令编写一个程序, 求出10以内的奇数之和, 即计算1+3+5+7+9. 编写后, 尝试列出处理器状态的变化过程, 以此来检查你编写的程序是否正确.
程序如下:
1 | 0: li r0, 9 |
过程如下:
1 | (0, 0, 0, 0, 0) |
题目
尝试继续执行上述代码, 记录状态的变化过程. 程序执行结束时, 程序处于什么样的状态?
1 | (6, 3, 2) |
从状态机视角理解数列求和电路的工作过程
题目
在上一小节中, 你已经通过寄存器和加法器搭建出一个简单数列求和电路, 用于计算1+2+...+10. 尝试列出电路状态的变化过程.
假设左侧的寄存器为A,右侧的寄存器为B

A B
(0, 0) #初始状态
(1, 0)
(2, 1)
(3, 3)
(4, 6)
(5, 10)
(6, 15)
(7, 21)
(8, 28)
(9, 36)
(10, 45)
(11, 55)
(11, 55) #往后保持在(11, 55)的状态