Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.138.141.202] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Простой вопрос. Есть хотелки в следующих ипостасях: 1) Реализация и оформление статического метода на gas (в синтаксисе Intel) 2) Реализация и оформление метода на gas (в синтаксисе Intel) 3) Реализация и оформление виртуального метода на gas (в синтаксисе Intel) 4) Реализация и оформление статического метода на fasm и объявление, и внешняя линковка 5) Реализация и оформление метода на fasm и объявление, и внешняя линковка 6) Реализация и оформление виртуального метода на fasm и объявление, и внешняя линковка Вот такое хочется! Я понимаю, если это зависит от реализации ... Тогда интересуют реализации: 1) GCC/Clang/MinGW 2) Компилер от 2017-2019 студии 3) Компилер от Intel C++ Возможно кто-то вспомнит про встроенный асм студии - его право. Я его никогда не видел (может его вааще нет) Если есть инфа - продолжим о способах передачи параметров и получении значения(й) по возврату. |
Сообщ.
#2
,
|
|
|
Подобные вещи описываются в ABI соответствующего компилятора и отчасти ОСи. По Стандарту лишь ключевое слово asm(строковый литерал);, но всё, что более глубоко, является implementation specified. А вот ABI как раз и должно описывать всё то, что тебя интересует: передача параметров, структура стековых фреймов, рабочие регистры итп.
|
Сообщ.
#3
,
|
|
|
Qraizer, умаляю!!! Дай наколку на доки в виде ссылки - хотя бы на п.4-5-6 для любого компилера (GCC/Clang в фаворе)
Добавлено ЗЫ: Оси, которые интересны Win/FreeBSD/Linux/OsX (в порядке интереса), архитектура строго Intel/AMD64. Для ARM'мов я не дорос есчо, PowerPC-перерос не застав. |
Сообщ.
#4
,
|
|
|
JoeUser
Вопрос понятный. Ответ такой же всё это зависит от компилятора и у каждого свои заморочки. А ещё это плохо документировано. Самое простое решение собрать код с трансляцией кода Си в Асм. И посмотреть как компилятор оформляет код. Цитата Если есть инфа - продолжим о способах передачи параметров и получении значения(й) по возврату. https://www.agner.org/optimize/calling_conventions.pdf Обязательно прочитайте главу про Name mangling Добавлено Вот тут не плохая подборка спецификаций ABI https://en.wikipedia.org/wiki/Executable_an...#Specifications |
Сообщ.
#5
,
|
|
|
Pavia, пасип!
|