This looks like you've got an invalid operation and a stack fault (where "stack fault" means the stack of FPU registers, not the CPUs stack, and has nothing to do with SS:SP or SS:BP).
I'm guessing the FPU was in it's power on state (with all FPU registers set to zero and not empty), and the first FILD tried to load a new value into the FPU register stack and the FPU register stack was full. I'd also guess that it'd work fine if you started with a FINIT instruction (or perhaps a FNINIT)...
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
You don't have to load the value of 1 into a General Purpose Register and then transfer it to an FPU stack slot. You can use the FLD1 instruction that automatically does that for you in the FPU.