Всъщност всичко се компилира до машинен код, асемблерът в само вид компилатор
правещ това от вид сорс с определен - обикновено платформено-специфичен- синтаксис

.
Не мога да ти помогна за това кой компилатор какво прави.
Това, което знам обаче е, че за да почнеш да можеш да пишеш реално работещ код
в който има обработки на прекъсвания, поне последните трябва да можеш да ги
направиш на асемблер, чак след това да оставяш компилатора да се мисли за
по-умен от тебе и да прави каквото иска да прави.
Не ти ли е ясно кога кои регистри се стекват, *къде* се стекват и откъде се
възстановяват работата е безнадеждна.