Современные CPU

Тема в разделе "WASM.BEGINNERS", создана пользователем mr.en3mY, 26 авг 2017.

  1. Minzdrav

    Minzdrav Well-Known Member

    Публикаций:
    0
    Регистрация:
    21 мар 2017
    Сообщения:
    1.082
    Садко и все.
    А почему GAS такой древний асм и так крепко
    держится? Не рассыпается в прах как другие?
    Это же бывший AS, один из первых ходовых
    ассемблеров. В нём должно всё устареть.

    Под Линуксы-БСД вроде же на Си пишут традиционно?
     
  2. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Потому что GAS - неотъемлемая часть GCC: прежде всего, ассемблерные вставки напрямую подставляются в ассемблерный файл, который генерирует GCC. А потом это всё, как раз, скармливается GAS.
    То есть, опять же, GCC скорее больше транслятор нежели компилятор: в одной из стадий компиляции он транслирует исходник на Си или Си++ в ассемблерный файл. Проверить это можете, передав опцию -S компилятору. На выходе получите вполне себе ассемблерный файл.
    Ну и, опять же, GCC используется для сборки ядра Linux. Разумеется, если там не будет продвинутого встроенного ассемблера, ядро особо не попишешь.
     
  3. Minzdrav

    Minzdrav Well-Known Member

    Публикаций:
    0
    Регистрация:
    21 мар 2017
    Сообщения:
    1.082
    СадКо и все.

    Очень интересно, Садко!
    Я так понимаю что Си не транслируется в ассемблер,
    как раньше, а на прямую в машинный код? Ну я так читал
    что мол по началу Си транслировался в ассемблер, а потом
    сделали напрямую. Или на Линксе транслируется в асм, сначала,
    а потом в код?
    ГАС разве продвинутый? Говорят же что страшный динозавр,
    без малейшего облегчения жизни, кодеру? :)
    А где ГАС используют, кроме Линукс и БСД ядра?

    Ты знаешь, по ГАСу очень мало информации, в сети, а вещь
    явно интересная.
     
  4. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    Всё же транслируется в машинный код, если это не виртуальная машина!!!
     
  5. SadKo

    SadKo Владимир Садовников

    Публикаций:
    8
    Регистрация:
    4 июн 2007
    Сообщения:
    1.610
    Адрес:
    г. Санкт-Петербург
    Это зависит от конкретного компилятора. Но зачастую в компиляторах стадия кодогенерации осуществляется после стадии перевода в псевдокод.
    Это особенно удобно, когда производитель предоставляет не конкретный компилятор, а набор (коллекцию) компиляторов для разных языков.
    Например, clang сначала генерирует код для LLVM, и только после этого вы можете получить нативный код.
    GCC генерирует ассемблерный код, а затем скармливает его GAS. Да что GCC. Тот же Watcom в своё время генерировал псевдокод, и только на финальной
    стадии выдавал уже объектник.
    Множество синтаксически различных языков всегда проще подвести под какую-то общую базу, и только после этого заниматься кодогенерацией.
    Так гибче, так проще.

    А почему нет?
    - Поддерживает БОЛЬШИНСТВО различных архитектур: x86, x86_64, ARM, Alpha, PPC, MIPS, AVR и т.д.
    - Своевременно поддерживает все инструкции, доступные для каждой поддерживаемой архитектуры.

    Недостаток только в AT&T-синтаксисе (который, кстати, при желании можно сменить на интеловский), который большинство кодеров, пришедших с венды или из доса, не могут сходу переварить.

    GLIBC же, навскидку.
    Встроенный в GCC ассемблерный код напрямую передаётся GAS как он есть (после стадии обработки компилятором).

    Ничего подобного, информации достаточно. Вот мануал https://sourceware.org/binutils/docs/as/
     
  6. mr.en3mY

    mr.en3mY New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2017
    Сообщения:
    16
    А если я пишу под Win зачем мне другие сборщики? Точнее в каких случаях они мне могут пригодится?
     
  7. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    У каждого свои фишки, у Фасм есть то, что нет у Масма и наоборот, всё это дело вкуса.
     
    Mikl___ нравится это.
  8. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    yashechka,

    У васма фишка особая - неадекват модер и даже админ не знает что с этим делать :sarcastic:
     
  9. yashechka

    yashechka Ростовский фанат Нарвахи

    Публикаций:
    90
    Регистрация:
    2 янв 2012
    Сообщения:
    1.449
    Адрес:
    Россия
    Поправил.