汇编语言
x86-64
Loading a value into a 32-bit register name sets the upper 32 bits of the register to zero. Thus, after movl $-1, %eax, the %rax register has value 0x00000000FFFFFFFF.
Loading a value into a 16- or 8-bit register name leaves all other bits unchanged.
既movl等操作32bit指令会将后32bit置零