Очищаем 32-х битный регистр и помещаем что-нибудь в LSW
Самый понятный пример - это то, что делают все вирусы, когда помещают количество секций в PE-файле в AX (так как это значение занимает 1 слово в PE-заголовке).
xor eax,eax ; 2 байта mov ax,word ptr [esi+6] ; 4 байта
Или так:
mov ax,word ptr [esi+6] ; 4 байта cwde ; 1 байт
Я все еще удивляюсь, почему все VX-еры используют эти "старую" формулы, особенно, когда у нас есть инструкция 386+, которая делает регистр равным нулю перед помещением слова в AX. Эта инструкция равна MOVZX.
movzx eax,word ptr [esi+6] ; 4 байта
Хех, мы избежали одной лишней инструкции и лишних байтов. Круто, правда?