Quantcast
Viewing all articles
Browse latest Browse all 152

I need explanation about mov instruction

Hi,

why is 0 passed into esi if I use mov esi, vec; or [vec] instead of mov esi, vec1?

Code: (look at NormalizeVec)

class VectorSoA
{
public:
VectorSoA():test(0)
{
vec = (Vector*)_aligned_malloc(sizeof(Vector), 16);
vec[0] = Vector(1,2,3,0);
}

~VectorSoA()
{
_aligned_free(vec);
}

Vector* vec;

void NormalizeVec()
{
Vector *vec1 = vec;
__asm
{
mov esi, vec1
movaps xmm0, [esi]
movaps xmm1, xmm0
mulps xmm0, xmm0
haddps xmm0, xmm0
haddps xmm0, xmm0
rsqrtps xmm0, xmm0
mulps xmm1, xmm0
movaps [esi], xmm1
}
}

private:
float test;
};

greetz, thanks

Viewing all articles
Browse latest Browse all 152

Trending Articles