Be careful when using unary negatives within the PUSH immediate instruction. I got caught by an unexpexted outcome.
I started with this and all was okay:
infinity = 07fffffffh
use32
push -infinity infinity ;this line okay, two PUSH opcodes generated
Later I rearranged the code to this:
infinity = 07fffffffh
use32
push infinity -infinity ;this line different, one "PUSH 0" instruction
The second push above is assembled as a binary negative.
One solution is this below:
infinity = 07fffffffh
use32
push infinity 0-infinity ;this line okay, two PUSH opcodes generated