零扩展是与符号扩展类似的概念。在移动操作或转换操作中,零扩展指的是将目标的高位数设置为零,而不是将高位数设置成原数字的最高有效位。零扩展通常用于将无符号数字移动至较大的字段中,同时保留其数值;而符号扩展通常用于有符号的数字。
在x86及x64指令集中,movzx指令(“使用零扩展移动”)将执行零扩展移动。举个例子,movzx ebx, al会复制al中的一个字节至ebx的低位字节,随后使用0填充ebx的剩余字节。
在x64平台上,大多数写入通用寄存器的低32位的指令将使用0填充目标寄存器的上半部分。举个例子,指令mov eax, 1234将清除rax寄存器的上32位。