My apologies if this has already been addressed.
The following
org 80000000h - 8
dq $
dq $
generates the following qwords:
000000007ffffff8
ffffffff80000000
It appears that FASM sign-extended the current address. This could lead to subtle bugs, breaks code that was written for the lower 2GB of address space when that code is assembled for the top half of memory, and it seems like it wouldn't work well for x86-64.
For instance, the construct:
Where foo is a label, works just fine when the foo is below 2GB, but generates an error when foo is above 2GB.
Priv, do you plan on changing this feature?