movl %eax, %eax
или mov eax, eax
, в зависимости от используемого ассемблера.
см .: Архитектура Intel® 64 и IA-32 - Руководство разработчика, Том 1 3.4.1.1: Регистры общего назначения в 64-битном режиме.
32-разрядные операнды генерируют 32-разрядный результат, ноль-расширенный до 64-битного результата в целевом регистре общего назначения.
Я должен добавить в комментарий @ HansPassant: 7.3.1.7:
Инструкция MOVSXD работает с 64-битными данными. Он знаменем - расширяет 32-битное значение до 64 бит.