我想在OISC架构中使用SBN生成斐波纳契系列。我最初的方法是首先用汇编语言实现它,然后将其转换为机器语言。第一步涉及将0和1存储在2个寄存器中,然后从0中减1,并在后续步骤中重复减1。每次它将产生一个负数,并且由于它是负数,它会分支并获取绝对值查找指令。
我的方法是否正确?我对OISC意义的困惑。纠正我,如果我错了,如果我执行减法然后绝对值发现,这意味着我每次都使用2条指令。或者是在OISC处理器中,这些指令都是在同一时间完成的,这意味着我的方法是正确的。
答案 0 :(得分:2)
可以从OISC指令的组合合成通用汇编指令。例如,取自Wikipedia page,另外:
ADD a, b == subleq a, Z
subleq Z, b
subleq Z, Z
BEQ
:
BEQ b, c == subleq b, Z, L1
subleq Z, Z, OUT
L1: subleq Z, Z
subleq Z, b, c
OUT: ...
重要的见解是,一旦拥有了这些构建块,就可以构建更复杂的块。例如,使用ADD
和BEQ
,您可以轻松实现计数循环(这对斐波纳契来说很有用......)
所以你可以做到以下几点:
答案 1 :(得分:1)
你有2种方法可以解决它: