Цитата(JustIce @ Jan 18 2009, 11:21)

При разделении асемблерного кода на несколько файлов (выделение каждой функции своего файла) компилятор почему то лепит кажый файл начиная с нулевого адреса.
По всей видимости в исходном файле был определен сегмент кода, размещаемый с нулевого адреса. При разделении файла, Вы в каждом файле определили такие сегменты. Посмотрите ассемблерную инструкцию SEGMENT в документе a51.chm в каталоге HLP Keil'a