linux64下汇编的long型的大小

问题遇到的现象和发生背景

我初学汇编,我在写linux下的c语言汇编发现一个问题,没搞懂
在linux64下,long型为8字节,想使用movq指令将定义的变量存进寄存器,但发现结果不对,查看内存发现好像是存的是4字节,所以movq指令存了错误的数

img

用代码块功能插入代码,请勿粘贴截图
#(V – (X * Y + Z -540)) /X
.data
X : .long  200
Y : .long  500 
Z : .long  400 
V : .long  790
.text # 代码段声明 
.global _start # 指定入口函数 
_start: 
#X*Y
movq Y, %rax
movq X, %rbx
imulq %rbx 
#?+Z
movq Z, %rcx;
addq %rax, %rcx
#?-540
movq $540, %rax
subq %rax, %rcx
#V-?
movq V, %rax
subq %rcx, %rax
#?/X
movq $0xffffffffffffffff, %rdx #将%edx初始化为符号
idivq %rbx
movl $0,%ebx # 参数一:退出代码 
movl $1,%eax # 系统调用号(sys_exit) 
int $0x80 # 调用内核功能
我的解答思路和尝试过的方法

我也尝试写了个.c文件汇编成.s文件,但太长了看不懂,我猜测是有什么指令会根据系统把long变成8位吗,等大佬

long不一定是8字节