fanaticlatic 0 Newbie Poster

Hello all,

I am writing assembly based off the following example paper:
http://lestourtereaux.free.fr/papers/data/yuvrgb.pdf

It is attempting to convert YUV values to RGB. It does this by using precomputed values in lookup tables for each possible Y,U,V value. Here is an example lookup table:

static const unsigned short CoefficientsRGBU[256][4] = {
{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0},
...
{14465, 62734, 0, 0}, {14465, 62734, 0, 0}, {14465, 62734, 0, 0}, {14465, 62734, 0, 0},
};

The problem I have is at the first offset to one of the look up tables the mm0 register ends up as null:

movq mm0, [ CoefficientsRGBU + 8 * eax ]

in my test eax is 85 here so I would expect mm0 to equal the 64bits (8 bytes) from CoefficientsRGBU+680 which I believe should equate to my entry { 5424, 64486, 0, 0 }.

Can anyone explain why I am seeing NULL in the mm0 register here? I have either misunderstood whats supposed to be happening here or done something silly lol both are very possible!

Thanks in advance for any help you can provide.

MarkH.