Язык ассемблера - это читаемая человеком форма машинного кода. Компилятор преобразует язык ассемблера в настоящий машинный код для выполнения на процессоре.
То, что вы передаете процессору, не является сборкой, а является скомпилированным машинным кодом
Возможно, вы ошибаетесь в дополнительном шаге преобразования - в понятиях архитектуры ЦП, x86 или x86-64, с реальной микроархитектурой ядра ЦП. Микроархитектура - это реальный код или инструкции, которые могут быть выполнены с помощью аппаратного обеспечения ядра, архитектура x86 охватывает это ядро и преобразуется в инструкции, понятные ядру.
Современные процессоры имеют очень разные ядра и наборы команд для процессоров, из которых они были созданы, и во многих случаях старые инструкции были медленными или могли быть улучшены тем или иным способом.
Включение основной микроархитектуры в архитектуру платформы позволяет реализовать улучшения в ядрах, не подвергая изменения платформе. Это дает нам общую и относительно неизменную платформу, в то время как фактические шаги выполнения могут быть совершенно разными.
Шаги, которые вы видите
- Компилятор: конвертирует удобочитаемые инструкции (сборка, C и т.д.) К машинному коду
- CPU выбирает машинный код для выполнения
- Диспетчер ЦП переписывает инструкции архитектуры в инструкции микроархива
- Инструкции выполнить
На старом процессоре, который был разработан с той же архитектурой ядра и платформы, шаг 3 будет пропущен.