Макрос fastcall для Linux в fasm

Тема в разделе "WASM.HEAP", создана пользователем pas, 4 мар 2007.

  1. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    пытаюсь написать макрос, который создаст макросы для функций linux, что бы их можно было вызывать примерно так:
    Код (Text):
    1. fwrite 1,msg,msg_size ; вывести сообщение msg
    написал следующее:
    Код (Text):
    1. macro fastfunc [name,id]
    2. {
    3.  forward
    4.  macro name [var]
    5.   \{
    6.    common
    7.    cnt=1
    8.    mov  eax,id
    9.    forward
    10.    if cnt=1
    11.     mov ebx,var
    12.    end if
    13.    if cnt=2
    14.     mov ecx,var
    15.    end if
    16.    if cnt=3
    17.     mov edx,var
    18.    end if
    19.    if cnt=4
    20.     mov esi,var
    21.    end if
    22.    if cnt=5
    23.     mov edi,var
    24.    end if
    25.    if cnt=6
    26.     mov ebp,var
    27.    end if
    28.    cnt=cnt+1
    29.    common
    30.    int  0x80
    31.  \}
    32. }
    33.  
    34. Определение функции: fastfunc fwrite,4
    Но почемуто не работает. Прекомпиллер показывает, что теряются forward и common внутри fastfunc.
    Вопрос: почему они теряются и как этого избежать?
     
  2. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    слэщ забыл.

    \ - добавь перед коммон и перед форввард.
     
  3. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    Большое спасибо. Я посмотрел в мануале там только перед скобками, вот и не догадался :-(((
    Если интересует выложу макрос готовый и определение сискалов
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Можешь подсмотреть макрос фасткола из proc64, там те же задачи.
     
  5. pas

    pas New Member

    Публикаций:
    0
    Регистрация:
    18 апр 2003
    Сообщения:
    330
    Адрес:
    Russia
    IceStudent
    А что это такое proc64?
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    proc64.inc, набор макросов для создания/вызовов подпрограмм в x64.