Never had a problem from Delphi 3 on and upwards to Delphi XE, I haven't tested in XE2 but I am sure this code works there too.
Using 32-bit as target I think so too, but you won't be able to compile this for 64-Bit. Just because you can't put a few pieces assembler code in a procedure. You have to make the whole procedure use assembler in 64-Bit in XE2.