Assembly 用这个斐波那契序列问题与指令集一起用来制作汇编代码

Assembly 用这个斐波那契序列问题与指令集一起用来制作汇编代码,assembly,pipeline,fibonacci,instruction-set,Assembly,Pipeline,Fibonacci,Instruction Set,这是一个斐波那契序列,我最近试图通过使用指令集将其转换为汇编代码。我不知道如何去测试它,我想知道我能不能确认我是否做对了,如果不是的话,我错在哪里了。此外,使用的“.”也意味着我必须使用指令集进行乘法。下面是我得到的问题和我的答案。我还想知道我是否使用了正确的#。代码需要在相乘之前添加(F(n-1)+F(n-2))。由于F(n-2)不需要保存,您可以将F(n-1)寄存器添加到F(n-2)寄存器中,这样总和将在保存F(n-2)的寄存器中结束 琐事:F(0)=0,因为F(n-2)=(F(n+1)-(

这是一个斐波那契序列,我最近试图通过使用指令集将其转换为汇编代码。我不知道如何去测试它,我想知道我能不能确认我是否做对了,如果不是的话,我错在哪里了。此外,使用的“.”也意味着我必须使用指令集进行乘法。下面是我得到的问题和我的答案。我还想知道我是否使用了正确的#。

代码需要在相乘之前添加
(F(n-1)+F(n-2))
。由于
F(n-2)
不需要保存,您可以将
F(n-1)
寄存器添加到
F(n-2)
寄存器中,这样总和将在保存
F(n-2)
的寄存器中结束


琐事:
F(0)=0
,因为
F(n-2)=(F(n+1)-(F(n)·F(n-1)))/F(n)
。您还可以计算
F(-1)=1)
,但不能计算
F(-2)
,因为它最终是
1/0

哪个指令集?这是汇编问题的基本要求,以确定指令集,因为每个处理器都有不同的指令集(或多个指令集,取决于使用的处理器模式,通常取决于操作系统和目标模式)。很明显,您得到了一些特定的任务指令集,是指定了特定的物理CPU,还是这个虚构的指令集?这对回答“如何测试”也有影响,最好是有一些特定CPU的模拟器/模拟器,使用真实硬件进行测试更为棘手。“.”很可能是乘法,如果它在您的特定领域有其他特定含义,此时您应该意识到这一点,您不会问。(除非这是打印/书写在纸上的任务的OCR,并且“+”被乱码得太多,以至于被识别为“”,然后它有助于查看原始文件。当然,对OCR文本总是有点偏执,至少要知道哪些文本是通过扫描/照片进行OCR的,哪些文本只是通过原始输入生成的,没有像OCR这样的模糊过程。然后,非OCR文本可能包含打字错误,所以……对一切都有偏执吗?)嗨,这是典型的RISC机器抱歉忘了提到这一点。非常感谢第二位,因为我相信它是乘法,但我不经常看到它。