FASM - траблы

Тема в разделе "WASM.BEGINNERS", создана пользователем Magnum, 12 июл 2008.

  1. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Нет, то что нашел на форуме нифига не работает (((

    value out of range

    нужно написать макрос на фасме

    передаются два параметра

    metka_begin
    metka_end

    и участок между этими метками заполняется последовательно числами
    1,2,3,4......0xFFFF
     
  3. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Поговаривают, что начинать топик с поста, содержащего только слово "del" - моветон.

    Код (Text):
    1. macro MakeTrash l1, l2
    2. {
    3.     num = 1
    4.     dest = l1
    5.     repeat (l2-l1)/2
    6.         store word num at dest
    7.         if num = $FFFF
    8.             num = 1
    9.         else
    10.             num = num + 1
    11.         end if
    12.         dest = dest + 2
    13.     end repeat
    14. }
    (!) Использовать 'store' (и, следовательно, этот макрос) можно только после участка кода с объявленными метками и только в том же адресном пространстве.
     
  4. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    value out of range
     
  5. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Хух? У меня заполняет:

    Код (Text):
    1. WinMain:
    2.     dw $10007 dup(?)
    3.     MakeTrash WinMain, $
    Покажи код, из-за которого такое происходит плиз.
     
  6. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    format PE GUI 4.0 at 0x10000000
    include 'include\win32a.inc'

    macro test_macro l1, l2
    {
    num = 1
    dest = l1
    repeat (l2-l1)/2
    store word num at dest
    if num = $FFFF
    num = 1
    else
    num = num + 1
    end if
    dest = dest + 2
    end repeat
    }

    section '.text' code readable executable
    align 8

    start:
    db 0x400000 dup (0x90)

    end_start:

    test_macro end_start, start
     
  7. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    add:
    а вот еесли убрать end_start и заменить на $

    все работает

    гм...
     
  8. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Неявно предполагалось, что l1 меньше l2 ;)

    test_macro end_start, start ; baaaad

    test_macro start, end_start ; gooood
     
  9. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    лоооооооол
    точно ))))))))

    от это я тупанул


    еще раз огромное спасибо )