[an error occurred while processing this directive]
|
Портирую тут программу с PIC, немного не пойму чуть соглашений, лень читать и искать в документации. Думаю не сложный вопрос.
При подключении кода на ассемблере в виде .S файлов метки входа в функции предваряются, где одной, где двумя символами подчёркивания. В Си программе соответственно используется символическое имя без подчёркивания(ий). Вопрос собственно в том, а где связь упрятана? Или это подразумевается Си-шным компилятором, что в ассеблерных объектных файлах нужно символические имена брать с символом подчёркивания? Или это как в windows, где у каждого компилятора своё декорирование? Мне просто интересно есть ли ещё какая обёртка для асм-функции, которая и вызывает функцию с подчёркиванием, либо в Си программа напрямую сама вызывает асм функцию с подчеркиванием, зная что нужно это подчеркивание подставить. Либо это стандарт на Си-компилятор? Наверное я мудрю и всё просто - вызываем функцию в C допустим MyFunc(), а в модуле на асме её обозначаем как __MyFunc: ... RETURN.
E-mail: info@telesys.ru