распишу по кодевижну (думаю в других С компиляторах ненамного отличается): гдето недалеко от исполнимого файла есть папка "inc" в ней файлы по названиям микросхем, в них адреса перевода битов, регистров, переходов... для перевода с человеческого языка на машинный цифровой, покопайся, может станет понятней (только не меняй ничего), а ещё можно почитать книги, (наверно лучше или про устройство МК или по ассемблеру - он к железу ближе), (конкретных не посоветую, но думаю, сейчас коты помогут).
пс: тот кусок, что я приводил - это перевод из С в ассемблер (а потом уже он превращается в прошивку) - если открыть этот файл целиком, то можно увидеть, насколько много скрыто от С программиста
когда мы прописываем обработчик компилятор его помещает куда считает нужным, но ссылку закидывает получается по адресу вектора прерывания для INT0 $002 простым языком по адресу вектора прерывания хранится ссылка на обработчик так чтоли? так же в принципе можно и вручную закинуть ссылку какой-нибудь функции по адресу вектора прерывания и не прописывать обработчик...


