According to AMD documentation:
2.5.9 MOVSXD Instruction
MOVSXD is a new instruction in 64-bit mode (the legacy ARPL instruction opcode, 63h, is
reassigned as the MOVSXD opcode). It reads a fixed-size 32-bit source operand from a register or
memory and (if a REX prefix is used with the instruction) sign-extends the value to 64 bits. MOVSXD
is analogous to the MOVSX instruction, which sign-extends a byte to a word or a word to a
doubleword, depending on the effective operand size. See “General-Purpose Instruction Reference” in
Volume 3 for additional information.
Without testing myself I'm curious if you create a variable as a dword ( eg: var DD 1 ) and use that variable address if you still get the error message. I think the key part here is "fixed-size 32-bit source". Perhaps Nasm is simply trying to help you out, although rather cryptically, based upon the data definition?