Assembly 添加没有符号扩展的值?

Assembly 添加没有符号扩展的值?,assembly,x86-64,sign-extension,Assembly,X86 64,Sign Extension,我知道CPU不关心符号位,因为2的补码。但当使用不同的操作数大小时,源值将符号扩展到目标值的大小 xor rax, rax add rax, byte 0xAD ; adds 0xFFFFFFFFFFFFFFAD to RAX 是否有一条添加指令可以添加不带符号扩展名的值(并避免空字节)? (我使用的是x86_64体系结构)不是立即启动。您可以查看寄存器。因此添加r64,r8不是符号扩展加法吗?没有添加r64,r8。抱歉r64和r8应表示64位寄存器和8位寄存器。这里没有此类指令。将立即数加载

我知道CPU不关心符号位,因为2的补码。但当使用不同的操作数大小时,源值将符号扩展到目标值的大小

xor rax, rax
add rax, byte 0xAD ; adds 0xFFFFFFFFFFFFFFAD to RAX
是否有一条
添加
指令可以添加不带符号扩展名的值(并避免空字节)?


(我使用的是x86_64体系结构)

不是立即启动。您可以查看寄存器。因此
添加r64,r8
不是符号扩展加法吗?没有
添加r64,r8
。抱歉
r64
r8
应表示64位寄存器和8位寄存器。这里没有此类指令。将立即数加载到64位寄存器零扩展后,将使用
addr64,r64
<代码>mov cl,0xad;movzx-ecx,cl;添加rax、rcx(请注意,32位操作零位会自动扩展)。