在x64中对32位寄存器的直接写操作会清除对应64位寄存器的数据,如
movq $0x1010101010101010,%rax
movl $0x10101010,%eax
结果rax值为0x10101010
而对16位,8位寄存器的写操作对对应x64,x86寄存器的其他部分数据毫无影响,如
movq $0x1010101010101010,%rax
movw $0x1010,%ax
结果rax值为0x1010101010101010
在x64中对32位寄存器的直接写操作会清除对应64位寄存器的数据,如
movq $0x1010101010101010,%rax
movl $0x10101010,%eax
结果rax值为0x10101010
而对16位,8位寄存器的写操作对对应x64,x86寄存器的其他部分数据毫无影响,如
movq $0x1010101010101010,%rax
movw $0x1010,%ax
结果rax值为0x1010101010101010
转载于:https://my.oschina.net/u/1171187/blog/950978