movzx / movsx на x64 [дубликат]

Очистить и перестроить

. «Чистая» сборки может удалить «мертвую древесину», которая может быть оставлена ​​лежащей рядом с предыдущими сборками, неудачными сборками, неполными сборками и другими проблемами сборки.

В общем случае среда IDE или сборка будет включать в себя некоторую форму «чистой» функции, но это может быть неправильно настроено (например, в ручном файле) или может завершиться неудачей (например, промежуточные или результирующие двоичные файлы - только).

После завершения «очистки» убедитесь, что «чистый» преуспел, и весь сгенерированный промежуточный файл (например, автоматический файл makefile) был успешно удален.

Этот процесс можно рассматривать как конечный вариант, но часто является хорошим первым шагом ; особенно если недавно был добавлен код, связанный с ошибкой (локально или из исходного репозитория).

5
задан brooks94 29 January 2014 в 20:16
поделиться

1 ответ

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 бит.

9
ответ дан Brett Hale 26 August 2018 в 15:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: