送大家一个汇编版的浮点乘法!比标准库要快不少! ;============================================================================================== ; ----Function: float Float_Mul(float A,float B); ; -Description: ; --Parameters: ; -----Returns: ; -------Notes: ;============================================================================================== Float_Mul movs r0,r0 ;判零 bxeq r14 movs r1,r1 moveq r0,r1 bxeq r14 ubfx r2,r0,#23,#8 ubfx r3,r1,#23,#8 add r2,r3 subs r2,#0x7e movcc r0,#0 bxcc r14 cmp r2,#0xff mvnhi r0,#0 bxhi r14 eors r3,r0,r1 orrmi r2,#0x100 lsl r0,#8 lsl r1,#8 orr r0,#0x80000000 orr r1,#0x80000000 umull r1,r0,r0,r1 adds r0,#0x40 lsrpl r0,#7 ;小于0.5 subpl r2,#1 ;指数调整 lsrmi r0,#8 ;大于等于0.5 eor r0,#0x800000 ;清第23位 bfi r0,r2,#23,#8 bx r14
|