Le titre de mon topic , n'est pas explicite , mais il contient les mots clé essentiel pour la fonction "recherche"
Bref, j'ai trouvé comment commencer sérieusement en ASM.
l'optimisation des routines 3D matrice & vecteur avec les instructions SSE des x86.
mais je galère avec la syntaxe. ce qui me provoque des erreurs
ici un IMA :
Code:
Structure Vector3
x.f
y.f
z.f
EndStructure
Macro SSE_Vector_normalize(vector)
!mov eax, dword[v_#vector]
!movaps xmm0, [eax]
!movaps xmm2, xmm0
!mulps xmm0, xmm0
!movaps xmm1, xmm0
!shufps xmm0, xmm0, 147
!addps xmm1, xmm0
!movaps xmm0, xmm1
!shufps xmm1, xmm1, 78
!addps xmm0, xmm1
!rsqrtps xmm0, xmm0
!mulps xmm0, xmm2
!movaps [eax], xmm0
EndMacro
A.Vector3
A\x = 10
A\y = 10
A\z = 10
SSE_Vector_normalize(A)
D'apres ce que j'ai compris , les éléments du vecteurs doivent être aligné en mémoire , c'est le cas pourtant.
si je fait
Code:
Dim A(2)
A(0)=10
A(1)=10
A(2)=10
Ptr = @A()
SSE_Vector_normalize(Ptr)
sa marche , mais rien n'est normalizé ^^
Voici d'autres questions :
pour une procedure du style :
Code:
procedure A(*V.Vector3)
Comment je peut mettre l'adresse de *V dans un registre ?
j'ai des "undefined symbol"
j'ai essayer ceci
Code:
v_V
p_V
p.v_V
etc...
rien ne marche.
Merci d'avance.