На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> Есть ли дружба С++ с Ассемблером по Стандарту?, [[hohma_unused]]
    Всем привет!

    Простой вопрос. Есть хотелки в следующих ипостасях:

    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++

    Возможно кто-то вспомнит про встроенный асм студии - его право. Я его никогда не видел (может его вааще нет) :lol:
    Если есть инфа - продолжим о способах передачи параметров и получении значения(й) по возврату.
      Подобные вещи описываются в ABI соответствующего компилятора и отчасти ОСи. По Стандарту лишь ключевое слово asm(строковый литерал);, но всё, что более глубоко, является implementation specified. А вот ABI как раз и должно описывать всё то, что тебя интересует: передача параметров, структура стековых фреймов, рабочие регистры итп.
        Qraizer, умаляю!!! Дай наколку на доки в виде ссылки - хотя бы на п.4-5-6 :wall: для любого компилера (GCC/Clang в фаворе)

        Добавлено
        ЗЫ: Оси, которые интересны Win/FreeBSD/Linux/OsX (в порядке интереса), архитектура строго Intel/AMD64.
        Для ARM'мов я не дорос есчо, PowerPC-перерос не застав.
          JoeUser
          Вопрос понятный. Ответ такой же всё это зависит от компилятора и у каждого свои заморочки. А ещё это плохо документировано.

          Самое простое решение собрать код с трансляцией кода Си в Асм. И посмотреть как компилятор оформляет код.

          Цитата
          Если есть инфа - продолжим о способах передачи параметров и получении значения(й) по возврату.

          https://www.agner.org/optimize/calling_conventions.pdf
          Обязательно прочитайте главу про Name mangling

          Добавлено
          Вот тут не плохая подборка спецификаций ABI
          https://en.wikipedia.org/wiki/Executable_an...#Specifications
          Сообщение отредактировано: Pavia -
            Pavia, пасип!
            1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0260 ]   [ 17 queries used ]   [ Generated: 25.06.21, 10:55 GMT ]