Да, това е така и е точно описан потенциален проблем. Основната причина обаче е, че когато компилатора изгражда програмата регистрите нямат стойности, а само адреси. Примерно, компилатора вижда PORTA и генерира инструкция, в която е включен адреса на PORTA, като стойноста му е неизвестна. Освен това всички провеки като if, else и т.н. стават в така наречения runtime, т.е. по време на компилиране. И за пореден път казвам, че компилатора, пък и дори симулатора няма как да следят логиката на програмата, в смисъл да ти кажат ч е това което искаш да направиш няма да стане и да дават грешки. Той единствено следи за коректен синтаксис и всички променливи да са дефинирани. Ти искаш някъв хибрид между компилатори и симулатор едновременно
А такива файлове, в които са описани всички регистри има, и точно от там компилатора взима адреса.
Най-добре вземи прочети помощната информация за MPASM. Там е описано всичко.
@Zeus, разбирам напълно идеята ти. Преди като пишех на асемблер, съм имал доста проблеми с тия банки. Но това което искаш не може да стане, мисля че ти обясних достатъчно ясно защо. Що не обмислиш идеята да минеш на С, или пък да ползваш 18-та или по-восока серия пикове?