Если вы потратите много времени на просмотр результатов сборки вашего источника C / C ++, вы очень быстро заметите, что большинство хороших оптимизирующих компиляторов делают сборку лучше, чем даже хорошие программисты на ассемблере. Решения о том, когда встроить функцию, как обрабатывать циклы, пост-пре-инкремент (что многие компиляторы сами решают, как обрабатывать для вас сейчас) и т. Д. управлять адресами и определениями, чем вы, при нормальных обстоятельствах, по крайней мере.
Даже драйверы устройств и ядра ОС обычно не пишутся с использованием большого количества сборок. Небольшие критически важные для производительности части программ реального времени - вот где вы найдете сборки в современных приложениях.
Становится еще хуже, когда вы начинаете говорить о сборке RISC, которая, как правило, чрезвычайно эффективна для инструкций по оптимизации, таких как ветвление и обмен, наряду с десятками регистров общего назначения. Большинство людей не умнее оптимизирующего компилятора. Те, кто обычно пишут оптимизирующие компиляторы.