RISCV-LEARN

Interpreter

1 思路

在上一节里面实现了指令的解码,即识别32位/16位的01字符串,从而得到该字符串对应的指令,并解析出rs、rd、imm等。

在指令解析完成之后,那下一步就是去真正的执行指令,这个也是需要每条指令都去写一个实现方式,其实技术含量不高,主要就是一条一条去实现。

2 实现

在实现的过程中,相当于是对各个指令又进行了一边学习,有几个值得注意的地方:

对于LOAD和STORE,这是对stack空间的操作,前面在mmu的实现部分,只是分配了堆的起始位置,而栈空间并没有实现,所以下一节是要实现栈空间的管理,然后把stack bottom赋给sp寄存器,这样就能正确操作ld等指令了,否则会没法正常模拟执行程序。