我试图了解现代CPU是如何工作的。我专注于RISC-V。有几种类型的分支:
我使用一个模拟器来测试这一点,而且我也在尝试模拟它,到目前为止它运行得很好,但是我无法理解分支是如何计算的根据我所读到的,ALU单元只有一个信号输出-- ZERO (除了它的数学输出),它在输出为零时是活动的。但是,如何才能根据ZERO输出确定是否应该使用分支呢?他们是怎么计算出来的</
我想知道现有的GDB对于RISC-V是否支持程序上下文感知的断点?
程序上下文感知断点:我的意思是,当有JAL或JALR指令时,PC会在函数调用时改变。在函数调用==> PC = PC +(当前程序计数器+ 4)的其他情况下,函数返回: PC = PC -(返回地址(ra寄存器值) )。我已经在我的ubuntu(虚拟机)上安装了fedora(risc-<em
我用RISC-V汇编语言写了一个计算第n个斐波那契数的代码。它有两个部分- fib.s和runtest.s,它们将n的值加载到a0中,并调用fib,后者计算第n个斐波那契数(没有递归),将结果加载到a0本身并返回。This is c
li a6, 2 # dummy, just to checka<em
目前,我正在理解一个RISC-V(ISA)指令集体系结构,它有三个扩展I、M和C扩展。几乎我已经理解了I、M和C扩展的所有指令,但我还没有发现当两个不同的计数器出现时,jumps和branches指令是如何工作的,以及它们是如何计算下一个指令的地址和我们给出的标签的即时值的。备注: In C-extension程序计数器与+2的增量,因为C表示压