rapide asembly filtre fir

R

rntsay

Guest
/ * 16-tap dot pipeline de produits pour Pentium, équivalent à (mais beaucoup plus rapide
* Que) la routine C:
*
* Float fir16 (float a [16], float b [16])
* (
* Int i;
* Float somme = 0;
* For (i = 0; i <16; i )
* Somme = a * b ;
* Somme de retour;
*)
*
* Copyright 1996 Phil Karn, KA9Q
* /
. globl _fir16
_fir16:
pushl% ebx

movl 8 (% esp),% eax / * eax -> a [] * /
movl 12 (% esp),% ebx / * ebx -> b [] * /

domaines (% eax)
fmuls (% ebx) / * a [0] * b [0] * /
domaines 4 (% eax)
fmuls 4 (% ebx) / * a [1] * b [1] [0] * b [0] * /
domaines de 8 (% eax)
fmuls 8 (% ebx) / * a [2] * b [2] a [1] * b [1] [0] * b [0] * /
fxch% st (2) / * a [0] * b [0] a [1] * b [1] [2] * b [2] * /
faddp / * sum0 1, un [2] * b [2] * /
domaines de 12 (% eax)
fmuls 12 (% ebx) / * a [3] * b [3] sum0 1, un [2] * b [2] * /
fxch% st (2) / * a [2] * b [2] sum0, 1 a [3] * b [3] * /
faddp / * sum0, 1,2 a [3] * b [3] * /
domaines de 16 (% eax)
fmuls 16 (% ebx)
fxch% st (2)
faddp
domaines de 20 (% eax)
fmuls 20 (% ebx)
fxch% st (2)
faddp
domaines de 24 (% eax)
fmuls 24 (% ebx)
fxch% st (2)
faddp
domaines de 28 (% eax)
fmuls 28 (% ebx)
fxch% st (2)
faddp
domaines de 32 (% eax)
fmuls 32 (% ebx)
fxch% st (2)
faddp
domaines de 36 (% eax)
fmuls 36 (% ebx)
fxch% st (2)
faddp
domaines de 40 (% eax)
fmuls 40 (% ebx)
fxch% st (2)
faddp
domaines de 44 (% eax)
fmuls 44 (% ebx)
fxch% st (2)
faddp
domaines de 48 (% eax)
fmuls 48 (% ebx)
fxch% st (2)
faddp
domaines de 52 (% eax)
fmuls 52 (% ebx)
fxch% st (2)
faddp
domaines de 56 (% eax)
fmuls 56 (% ebx)
fxch% st (2)
faddp
domaines de 60 (% eax)
fmuls 60 (% ebx)
fxch% st (2)
faddp / * somme de [15] * b [15] * /

pop% ebx

faddp / * somme à gauche sur la pile * /

ret

 

Welcome to EDABoard.com

Sponsor

Back
Top