详情看本周更新的V0.4版本即可。http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547
绝对值函数用到QSUB,QSUB16和QSUB8。
求和函数用到QADD,QADD16和QADD8。
点乘函数用到SMLALD和SMLAD。
乘法用到__PKHBT和__SSAT。
用到的这几个指令,在本章讲解具体函数时都有专门的讲解说明。这里重点说一下饱和运算的问题:
字母Q打头的指令是饱和运算指令,饱和的意思超过所能表示的数值范围时,将直接取最大值,比如QSUB16减法指令,如果是正数,那么最大值是0x7FFF(32767),大于这个值将直接取0x7FFF,如果是负数,那么最小值是0x8000(-32768),比这个值还小将直接取值0x8000。
反应到实际应用中就是下面这种效果: |