Re: c & asm (unix)

kondel33

Где можно почитать про использовании asm-а в с программах под Unix ?
спасибо

bobking

info gcc -> C Extensions -> Extended Asm

kondel33

это про buit-in функции
а что нибуть с extern ?

bobking

Это про inline asm.
Но ты, маза, хочешь вызывать внешние на функции из C и не знаешь, как передать параметры и т.п?
Если да, то тебе нужен ELF ABI, поищи в папочке

kondel33

ну вобщемя хочу в с программе вызвать asm функцию, описанную в другом файле
я просто не работал с С & asm, и, честно говоря, не знаю как описывать всё это
хотелось бы како нибуть док с примерами почитать

tolik1

Маза почитай код ядря - там примеров использования C & asm больше чем достаточно. И ман никакой не понадобится.

bobking

Доки есть в инете.
Тебе нужно в .S


.global kal
kal:
трали-вали-код на ассемблере


В .c (.h) как обычно для любой внешней функции


void kal(void);
[...]
kal;


Как работать в коде на асме с переданными параметрами, смотри в указанной выше папке.

kondel33

не, .S это понятно
но как эту функцию в .S из C программы вызвать ?
инета нет

bobking

> но как эту функцию в .S из C программы вызвать ?
Как любую другую, если ты соблюдаешь ABI (третий раз намекаю на папочку).
> инета нет
Я в курсе. Вижу, что ты переключился на другую задачу, попроще.

kondel33

я не понмиаю при чём тут вообще ABI, если честно
то что я спрашиваю - простая вещь
откуда в C программа узнает о существовании ф-ии в .S
а задачи идут по порядку

Chupa

> откуда в C программа узнает о существовании ф-ии в .S
Прототип напиши - узнает.

bobking

> откуда в C программа узнает о существовании ф-ии в .S
Об этом должен знать редактор связей (линкер). А он узнает потому что ты объявил символ kal как global.

kondel33

спасибо огромное - разобрался
Оставить комментарий
Имя или ник:
Комментарий: