Да как раз не "кругами"...
Вопрос действительно заслуживает хорошей разборки.
Расширение *.asm имеет право иметь файлик, исходник которого самодостаточен для автономной обработки компилятором.
При том, что у данного модуля (если использхуется механизм инклуд -вставок) не будет обращений к внешним меткам/данным основного проекта.
Т.е. после подключения текст файла не подвергается дополнительной ручной обработке.
В случае с классикой и линкером ручная обработка не потребуется.
А вот при инклуд -вставке... дело посложнее.
В каждом проекте имеются секции "холодной" и "горячей" инициализации (а также секция объявленных имен для констант, данных, РСФ).
Типичное расположение таких секций в начале главного файла проекта.
У каждого сложного модуля (библиотечный *.asm файл) также могут имется соответствующие разделы.
Допустимы два варианта...
Выделение соответствующих участков из модуля с их последующим размещением в соответствующих разделах главного файла проекта (и закрытием таковых в модуле методом превращения в комментарий).
После такой доработки файл модуля уже не может быть обработан компилятором автономно - и естественно не может иметь расширение *.asm - вот его и меняем на *.txt для копии размещенной в папке проекта (в папке библиотек исходный файл остается без изменений и сохраняет расширение *.asm).
И второй вариант - в самом модуле добавляется флаг контроля выполнения процедуры начальной инициализации.
Тогда модуль сохраняет возможность автономной обработки компилятором и ессно оставляем ему расширение *.asm...
Однако... во многих случаях и лишний флаг в ОЗУ штука не слишком надежная и инициализация в произвольном месте кода программы нежелательна...
Вышеуказанные проблемы - группировка разных по назначению участков кодов модулей в единых секциях (кода, данных, еепром) проекта решаются именно при раздельной обработке каждого файла с последующей передачей результатов редактору связей.
К примеру в
.code
присутствуют сегменты hard_init, soft_init и main_soft....
Но... то уже несколько более навороченные компиляторы требуются.
А в простом случае - используем заложенные в имеющихся возможности.
Вобщем стоит внимательно поразмыслить/покопать и сформулировать...
ШИПЕНИЕ по поводу - "не надо заниматься" вряд-ли оправдывает возможности получить при помощи стандартного набора простых средств результат равный простому применению более навороченного софта.
