unix FAQ

Тема в разделе "WASM.UNIX", создана пользователем STAKANOV, 16 ноя 2005.

  1. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    А где наш FAQ по ассемблеру в юникасоподобных?
     
  2. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    я так понял FAQ - нет ? хм ... значит начнем составлять ...
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан




    Это был первый часто задаваемый вопрос :)))
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    STAKANOV

    Ты верно понял; для составления FAQ'a мало просто собрать ссылки, нужно их систематизировать. А кто лучше сделает это, чем сами юниксоиды?
     
  5. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    Свершилось :derisive:

    Первый FAQ по использованию ассемблера в юникс - http://stakanov.nm.ru/as/asm_unix_faq.html



    Думаю, никто не против того, чтобы обсуждать его здесь?
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    STAKANOV

    А как насчёт переноса его в отдельную тему по образу и подобию этого FAQ'a?
     
  7. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля


    попозже сделаю, сейчас маленький таймаут, предлагаю естественно потом закрепить полученный результат наверху, тут вроде так можно.



    Пока еще не одного замечания по содержанию ((((
     
  8. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    К тому же возникнет проблема с синхронизацией текста...



    Нужно чтоб был один первоисточник.
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    <ul type=disc>

    <li> Q: Можно ли писать в юниксе на Ассемблере?

    <li> Указать ссылки на офиц сайты (если есть), упомянуть FASM.

    <li>


    Вариант 1. А где остальные? :)

    <li>


    Указать соглашение вызовов.

    <li> К ссылкам добавил бы www.FreeBSD.org что ли :)

    </ul>
     
  10. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля


    это вариант первого вопроса или когда так спрашивают, то имеею ввиду "корректно ли писать на ассемблере в юникс" ?



    Уже поменточки линки себе сделал, а насчет fasm сильно сомневаюсь. Когда я его смотрел в последний раз, то он вроде должен был работать, но не заработал. Хотя если найдется кто-то кто использует FASM в юниксах... :derisive: А то придется вспомнить еще о YASM, FLASM ...





    а это что?





    да ну ) единственная причина чтоб добавить, это проявление уважения ) не думаю, что в этом есть необходимость ) хотя если только для людей, что увидев этот FAQ захотят переехать на фрю ))))))
     
  11. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля




    надеюсь увидеть варианты от тех, кто программирует в Linux, и от тех кто использует NASM.
     
  12. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Желательно, чтобы FAQ не превратился в набор ссылок. На вопрос должен следовать ответ, а не отфутболивание на http.

    А наборы ссылок - их море, в частности на opennet.ru, зачем делать ещё один.
     
  13. rgo

    rgo New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    87


    Исходя из того что в текущей директории лежит файлик hello-world.s

    1. gcc hello-word.s -o hello-world

    здесь возможно использование всяких --nostdlib и прочих, но тогда действительно проще разделить компиляцию и линковку, и линковать при помощи ld.

    2. make hello-world

    3. [f10]-t-c

    :))) запуск команды `make -k' из Emacs -- это дополнительно полагаеться на существование в текущей директории Makefile'а с дефолтовой целью





    к чему здесь оговорка про freebsd? libc на любой системе, присутствует обязательно. И больших проблем стоит заставить систему работать без неё. Также можно любую систему заставить работать без libc, но это уже специальная ситуация.





    /usr/src/linux/arc/i386/kernel/syscall_table.S





    в лине (точнее на glibc-based системе) более удобным способом _изучения_ является info libc. хотя man'ы тоже никто не отменял.

    кстати Q и A перепутаны ;)
     
  14. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля




    как я понял речь идет о варианте с glibc, этот вариант одинаков для всех ОС



    нужен сам файл hello-word.s



    rgo

    а тебя как упомянуть (ник, контакты)? :derisive:
     
  15. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    IceStudent

    А ты был прав про FASM, оно правда работает, да и статья с пример на wasm.ru есть. Может из нее и пример возьму, если никто лучше не предложит :derisive:



    а тебя как упомянуть среди авторов? :derisive:
     
  16. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    Учтя замечания внес некоторые изменения. Жду ответы на уточняющие вопросы.
     
  17. rgo

    rgo New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    87

    Код (Text):
    1.     .data
    2. msg:    .string "Hello world."
    3.     .text
    4.     .globl  main
    5. main:
    6.     pushl   $msg
    7.     call    puts
    8.     xorl    %eax, %eax
    9.         pushl   %eax
    10.     call    exit
     
  18. B_108

    B_108 New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    62
    Хотя если найдется кто-то кто использует FASM в юниксах...

    Найдётся :)

    для fasm в приведённом можно первую строку написать


    Код (Text):
    1. format ELF executable




    и тада ни ld, ни gcc не нужны
     
  19. STAKANOV

    STAKANOV New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2005
    Сообщения:
    73
    Адрес:
    Планета Земля
    B_108

    c FASMом мы разобрались - он на FreeBSD ставиться, собирается и работеат :derisive: у меня просто устаревшая информация была



    насчет
    сильно сомневаюсь, на FreeBSD точно только объектник получается



    FAQ нуждается в варианте "hello world" для LINUX c системными вызовами.
     
  20. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    STAKANOV



    Вообще, я имел ввиду соглашение о передаче параметров при вызове функции. То есть, FASTCALL, CDECL, STDCALL. Как ты уже сказал, в Линуксе через регистры, в FBSD — через стек. Вот уточни, как именно. Расписывать что и как не нужно, если соглашение стандартное.





    Да не надо меня упоминать, я к юниксам никакого отношения не имею.