Ассемблер правильный.Литеральное значение имеет длину 32 бита, но преобразование в dw усекает значение до 16 наименее значимых битов: 0xaabbccdd будет усечено до 0xccdd.
Little-endian формат означает, что значение всегда сначала сохраняется в LSB, независимо от того, равно ли это значение 16 битам или 32 битам.Итак ...
0xccdd
будет сохранено в памяти как 0xdd 0xcc
0xaabbccdd
будет сохранено в памяти как 0xdd 0xcc 0xbb 0xaa
Следовательно, не имеет значения, было ли значение усечено - первые два байта в памяти одинаковы.
Как указывает Андре Ласло, NASM выдает предупреждение для этого сценария.