汇编:8位芯片上的32位浮点指令

时间:2015-06-30 22:58:22

标签: assembly floating-point avr atmega

我试图帮助一位朋友在8位AVR芯片(Atmega8535)上做一些汇编代码,但我的装配知识相当渺茫,主要集中在现代芯片而不是一些过时的化石。

因此,它归结为如何在8位架构中添加两个 32位浮点的问题,该架构甚至不支持浮点特定指令集,如FADD ......

; 3.1415926 (pi) is given by 0x40 0x49 0x0F 0xDA
; 2.7182818 (e)  is given by 0x40 0x2D 0xF8 0x54

感兴趣的here是相关芯片的数据表。指令集从第301页开始。

2 个答案:

答案 0 :(得分:3)

我认为您有以下选择:

  • 查看avr-libc的实施细节
  • 用c编写你的程序。
    我敢打赌avr-gcc写的比你更好(在效率正确性方面)汇编代码
  • 使用更简单的数字格式。例如:

以下书籍也是一个很好的基本理解来源:

“基本功能软件手册” 作者:William J. Cody,William Waite

它展示了如何仅使用基于整数的算术来实现各种(也是基本的)操作和算法。

答案 1 :(得分:3)

  

因此,它归结为如何在8位架构中添加两个32位浮点的问题,该架构甚至不支持浮点特定指令集,如FADD

avr-libc库做like this。因此你也应该这样做。