インラインアセンブラについて質問です。

typedef struct EXT_VECTOR
{
    float e[3];

    EXT_VECTOR(float x1, float x2, float x3)
    {
        __asm
        {
            mov     ebx,    e
            fld     x1
            fstp    [ebx]

            fld     x2
            fstp    [ebx + TYPE float]

            fld     x3
            fstp    [ebx + TYPE float * 2]
        }
    }
};

このような構造体のコンストラクタでebxにeのアドレスをロードしようとすると、
どういうわけかebxの値が0のまま変動しません。
thisポインタをロードすれば動くのですが、中身を変更したことを考えると得策ではないと思います。
何か回避する方法はあるのでしょうか?