Вы можете найти эту интересную ссылку:
http://www.eskimo.com/~ddf/Theory/Micro_Fund/Commands/AssyLnge.html
В кратком объяснении, как правило, приложение будет загружено в некоторую область памяти, а процессору будет присвоен начальный адрес для основной или начальной части.
Процессор может делать две вещи, он может манипулировать данными и перемещать данные, поэтому он будет использовать специальные части в микропроцессоре, называемые регистрами, для хранения значений или местоположения, которые ему понадобятся.
Таким образом, для оператора if существует команда для определения того, равны ли два значения и куда идти, если они не совпадают (ветвь, если она не равна). Будут некоторые другие, такие как ветвь равной или ветвь больше чем.
Они будут в сборке.
Команды заносятся в регистры с соответствующими аргументами, и они будут рассчитаны на следующем тактовом цикле.
Это очень упрощено, но в значительной степени то, что вы видите в сборке, это то, что увидит микропроцессор.
Более подробная информация, вероятно, выходит за рамки StackOverflow.