A
Size: a a a
A
楽
DR
DR
БД
楽
A
EK
ST
DR
EK
xor ax,ax ; а также pxor xmm0,xmm0; xorps, xorpd, vpxor, etc...
sub ax,ax ; sbb, если cf=0
and ax,0
lea ax,[0]
push 0 / pop ax
salc ; al=0, если cf=0
cbw ; ah=0, если старший бит al=0; а также cwd, cdq, cqo
xchg ax,bx ; ax=0, если bx=0 и наоборот; mov ax,bx аналогично
fldz ; fninit (не совсем обнуление, конечно, но как варик)
vzeroall ; vzeroupper
mov eax,eax ; старшая часть rax обнуляется
mov ax,0 ; внезапно
; странные способы (обфускация, например):
loop $ ; cx=0; dec ax/jnz $-1 (для 16 битов); можно сделать rdtscp/inc ecx/loop $ (чтоб не гонять слишком долго)
mul cx ; ax=dx=0, если cx=0; аналогично fmul, fmulp, mulps, pmul...
mov cx,-1 / div cx ; ax=0, если dx=0; есть также divps и пр.
aad 0 ; ah=0
aam 1 ; ah=0
aam 0 ; al=0
shr ax,16 ; shr ax,cl, если cl = 16..31; можно shl
bzhi eax,eax,ecx ; если ecx=0
mov ecx,0FEh / rdmsr ; edx=0
mov eax,80000000h / cpuid ; ah=ebx=ecx=edx=0
movzx eax,al ; очищаем старшие 24 бита; есть ещё pmovzx
in ax,dx ; если правильно выбрать порт
; если значение ax заранее известно и очень подходит под ситуацию, можно inc ax, dec ax, not ax, lodsb, scasw, bswap и т.д.
; если знаем, что в памяти, то можно lds, les, mov ax,[bx], pop cx (например, на старте com-программы), xlatb, lodsw и т.д.
; по любому есть ещё 100500 способов
EK
DR
A
xor ax,ax ; а также pxor xmm0,xmm0; xorps, xorpd, vpxor, etc...
sub ax,ax ; sbb, если cf=0
and ax,0
lea ax,[0]
push 0 / pop ax
salc ; al=0, если cf=0
cbw ; ah=0, если старший бит al=0; а также cwd, cdq, cqo
xchg ax,bx ; ax=0, если bx=0 и наоборот; mov ax,bx аналогично
fldz ; fninit (не совсем обнуление, конечно, но как варик)
vzeroall ; vzeroupper
mov eax,eax ; старшая часть rax обнуляется
mov ax,0 ; внезапно
; странные способы (обфускация, например):
loop $ ; cx=0; dec ax/jnz $-1 (для 16 битов); можно сделать rdtscp/inc ecx/loop $ (чтоб не гонять слишком долго)
mul cx ; ax=dx=0, если cx=0; аналогично fmul, fmulp, mulps, pmul...
mov cx,-1 / div cx ; ax=0, если dx=0; есть также divps и пр.
aad 0 ; ah=0
aam 1 ; ah=0
aam 0 ; al=0
shr ax,16 ; shr ax,cl, если cl = 16..31; можно shl
bzhi eax,eax,ecx ; если ecx=0
mov ecx,0FEh / rdmsr ; edx=0
mov eax,80000000h / cpuid ; ah=ebx=ecx=edx=0
movzx eax,al ; очищаем старшие 24 бита; есть ещё pmovzx
in ax,dx ; если правильно выбрать порт
; если значение ax заранее известно и очень подходит под ситуацию, можно inc ax, dec ax, not ax, lodsb, scasw, bswap и т.д.
; если знаем, что в памяти, то можно lds, les, mov ax,[bx], pop cx (например, на старте com-программы), xlatb, lodsw и т.д.
; по любому есть ещё 100500 способов
EK
DR
НТ
EK
a
DR