include fasm (Linux)

Тема в разделе "WASM.BEGINNERS", создана пользователем Okoro4ek999, 4 мар 2020.

  1. Okoro4ek999

    Okoro4ek999 New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2020
    Сообщения:
    3
    Не понимаю прикола с инклюдом интерфейса под юникс.
    Код (ASM):
    1. include 'include/libc/system.inc'
    а он в ответку

    Код (Text):
    1. flat assembler  version 1.73.13  (16264 kilobytes memory, x64)
    2. include/libc/system.inc [6]:
    3. extrn malloc
    4. processed: extrn malloc
    5. error: illegal instruction.
    6.  
    код system.inc на которого агрессия
    Код (Text):
    1. ; flat assembler interface for Unix/libc
    2. ; Copyright (c) 1999-2020, Tomasz Grysztar.
    3. ; All rights reserved.
    4.  
    5. extrn malloc
    6. extrn free
    7. extrn getenv
    8. extrn fopen
    9. extrn fclose
    10. extrn fread
    11. extrn fwrite
    12. extrn fseek
    13. extrn ftell
    14. extrn time
    15. extrn exit
    нужна функция fwrite и time для работы.
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.952
    Для чего оно тебе? Это инклуд от fasm\source\libc\fasm.asm, system.inc захочет source\variable.inc, а за ним все остальные инклуды бинарника фасма.
     
  3. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.067
    Okoro4ek999, а зачем фасм, вообще, нужен под линь???
     
    Indy_ нравится это.
  4. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.952
    Зачем может понадобиться линукс?
     
  5. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Okoro4ek999, не надо этого делать
    это ж исходный код FASM компилятора. Это не предназначено для использования в качестве инклудов AS IS

    Ну и чтоб собирать LIBC нужно формат добавить правильный

    Код (ASM):
    1. format  ELF
    2. public  main
    3.  
    4. section '.text' executable align 16
    5.  
    6. main:
    7.  
    8.         mov     [con_handle],1
    9.         mov     esi,_msg
    10.         call    display_string
    11. exit_program:
    12.         movzx   ebx,al
    13.         mov     eax,1
    14.         int     0x80
    15.  
    16. display_string:
    17.         push    ebx
    18.         mov     edi,esi
    19.         mov     edx,esi
    20.         or      ecx,-1
    21.         xor     al,al
    22.         repne   scasb
    23.         neg     ecx
    24.         sub     ecx,2
    25.         mov     eax,4
    26.         mov     ebx,[con_handle]
    27.         xchg    ecx,edx
    28.         int     0x80
    29.         pop     ebx
    30.         ret
    31.  
    32. extrn malloc
    33. extrn free
    34. extrn getenv
    35. extrn fopen
    36. extrn fclose
    37. extrn fread
    38. extrn fwrite
    39. extrn fseek
    40. extrn ftell
    41. extrn time
    42. extrn exit
    43.  
    44. _msg db 'start program',0
    45. con_handle dd ?
    46.  
     
    Последнее редактирование: 4 мар 2020
  6. Okoro4ek999

    Okoro4ek999 New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2020
    Сообщения:
    3
    Я использую format ELF64 executable 3 для своей системы, нормально?
     
  7. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.546
    Адрес:
    Russia
    Код (ASM):
    1.  
    2. format ELF64 executable 3
    3. entry start
    4.  
    5. include 'import64.inc'
    6.  
    7. interpreter '/lib64/ld-linux-x86-64.so.2'
    8. needed 'libc.so.6'
    9. import printf,exit
    10.  
    11. segment readable executable
    12.  
    13. start:
    14.  
    15.     lea    rdi,[msg]
    16.     xor    eax,eax
    17.     call    [printf]
    18.  
    19.     call    [exit]
    20.  
    21. segment readable writeable
    22.  
    23. msg db 'Hello world!',0xA,0
    24.  
    скачайте FASM Для линукса и там все примеры будут
    https://flatassembler.net/fasm-1.73.22.tgz
     
  8. Okoro4ek999

    Okoro4ek999 New Member

    Публикаций:
    0
    Регистрация:
    4 мар 2020
    Сообщения:
    3
    Да я это уже понял недавно.
    btw, I use Arch поэтому сначала стащил fasm с pacman а там не было examples