FASM директива match макрос для матем.выражений

Тема в разделе "WASM.ASSEMBLER", создана пользователем Evg666, 20 дек 2005.

  1. Evg666

    Evg666 New Member

    Публикаций:
    0
    Регистрация:
    12 май 2004
    Сообщения:
    17
    Адрес:
    Russia
    После появления макроинструкции match в Fasm`е можно сделать макрос для матем. выраж.

    типа let eax=ebx+ecx*4+[A] о должен некоторым сильно облегчить жизнь.

    Но возникли след. вопросы.

    1.Почему не принимает истинным match ==A1,=eax+5

    2.Есть ли в макроинструкция goto (если бы была помогла бы очень сильно)

    3.как сделать этот макрос большим количеством аргументов

    4.или еще круче добавить скобки.



    Я написал следующее:


    Код (Text):
    1.  
    2. macro   let param
    3.  {
    4.     match A==B,param
    5.     \{
    6.         regresult   equ A
    7.         onearg  equ 1
    8.         match A1+B1,B
    9.         \\{
    10.             mov regresult,A1
    11.             add regresult,B1
    12.             onearg  equ 0  
    13.         \\}
    14.         match A1-B1,B
    15.         \\{
    16.             mov regresult,A1
    17.             sub regresult,B1
    18.             onearg  equ 0  
    19.         \\}
    20.         match A1*B1,B
    21.         \\{
    22.             mov regresult,A1
    23.             imul    regresult,B1
    24.             onearg  equ 0  
    25.         \\}
    26.     \}
    27.     if onearg eq 1
    28.         mov regresult,B
    29.     end if
    30.  }
    31.  


    Пример использ.:

    let eax=ebx+15

    let eax=ebx*ecx

    нужна помощь по улучшению:

    При решении вопросов 1,2 остальное дело техники.

    У меня Fasm 1.64.



    Всем заранее спасибо.
     
  2. halyavin

    halyavin New Member

    Публикаций:
    0
    Регистрация:
    13 май 2005
    Сообщения:
    252
    Адрес:
    Russia
    Макроинструкции goto нет.
     
  3. Evg666

    Evg666 New Member

    Публикаций:
    0
    Регистрация:
    12 май 2004
    Сообщения:
    17
    Адрес:
    Russia
    Я понимаю что данный макрос извращенство. Неужели никто не может улучшить.Цель просто изучение макроязыка Fasm.