Привет всем!
Сначала написал код умножения на чистом FB . После сравнения скорости , я понял , что код - полный аутсайдер (отставание в ~8 раз). Потом , дай думаю перепишу с помощью асмовых вставок и тут уже картина лучше (всего в 3 раза). Код работает на 64х-битной платформе , тестировал под Linux!
Код
function mul naked stdcall(iOne as Long , iTwo as Long ) as Long
asm
xor eax,eax
m0:
test edi , 1
jz m1
add eax, esi
m1:
shr edi,1
shl esi,1
test edi,edi
jnz m0
ret
End Asm
End Function
var t = timer
for i as Long = 1 to 99999999
var w = mul(55,10)
'var w = 55*10
Next
? Timer -t
sleep