Цитата(RRaptor @ Aug 18 2006, 15:29)

И еще, как заставить CrossStudio создавать asm исходники из C/C++, тогда бы я и сам посмотрел
как он генерирует код для вызова функций.
В CrossStudio в Project Explorer открываете дерево (нажимаете плюсик) для соответствующего исходника, там открываете Output Files, и кликаете Соответствующий *.o файл. И будет Вам счастье.
Или для всего проекта соответствующий Output Files->prjjectname.elf
Можон по другому. CrossStudio пользует GCC.
Т.е. можно ручками получить ASM файлик из С-исходника
gcc -S ....
Но ИМХО форматы и способы передачи параметров зависят от:
- Компилятора
- опций компилятора (оптимизация и т.д.)
- языка программирования. С, С++ и т.д.
- количества и типов самих параметров.
- всяких модификаторов и атрибутов. (типа extern "С" и т.п.)
- да от версии компилятора тоже
Т.ч. в ряде случаев "выгоднее" писать С-функцию с ASM-вставкой.
GCC-встроенный_ASM позволяет описывать входные-выходные параметры для ASM-вставок,
а также использовать абстрактрые регистры которые gcc сам заменит на "свободные", и если надо сохранит/восстановит используемые регистры в прологе/эпилоге.