Bug in FASM

Тема в разделе "WASM.ASSEMBLER", создана пользователем Hunter, 8 авг 2005.

  1. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    Privalov



    Как насчет assume? Будет ли она поддерживаться?
     
  2. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    _BC_

    Есть давно макрос для этих целей. Есть директива virtual.



    PS

    when u assume, u add an ass to u and me =)
     
  3. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    S_T_A_S_



    А эта директива поможет мне при смешивании 16- и 32-битного кода и многочисленных сменах сегментных регистров?

    Такая классная директива была assume... х/з чем она не понравилась... еще надо org выкинуть для полного счастья. :_(
     
  4. Hunter

    Hunter New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    47
    Privalov, а действительно, будет ли директива assume?;)



    Хотел еще обсудить с тобой несколько инструкций. А именно: SLDT/STR/SMSW и LLDT/LTR/LMSW/VERR/VERW, вернее их варианты с 32-х разрядным регистром. Для первой группы все понятно, в мануалах Intel указана дополнительная возможность использования 32-х битных регистров, в рзультате чего их старшая часть обнуляется. Для второй группы в принципе, нет разницы, с регистрами какой разрядности мы работаем. Т.е. в любом случае будет использоваться лишь младшая часть 32-х битного регистра. Поэтому, может быть, для оптимизации в FASM'e не генерировать префикс 66h перед инструкциями второй группы при использовании r16 в 32-битном режиме и наоборот, при использовании r32 в 16-ти битном? Ведь результат от этого не изменится.
     
  5. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    интересно а как без assume обходится nasm ?
     
  6. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    А никак. :) И моделей памяти там тоже нету.
     
  7. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
  8. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    я так думаю, что если отход от мануала интела оправдан и улучшает читабельность, то так нужно и делать, просто указывать это отдельно, а не в теле описания инструкций, тк многие, полагая что там написано тоже самое, что и в мануалах, могут этот раздел не читать.
     
  9. aravar

    aravar New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2004
    Сообщения:
    35
    Вот такой код:

    include 'win32axp.inc'

    .data



    .code

    start:

    invoke MessageBox,0,"It BUG ???","FASM",MB_OK

    invoke ExitProcess,0

    .end start

    не исполняется под WIN XP SP2, Ollydbg его не может загрузить, LordPE, PEtools показывают что .data присутствует. Если в этой секции обьявить данные все ОК. А под WIN 98 работает и спустой секцией. Вопрос это ошибка FASMa или особенности XP?
     
  10. dr_dred

    dr_dred Сергей

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    301
    Адрес:
    Russia
    aravar

    Такой файл даже масмом скомпилированный не запустится.
     
  11. aravar

    aravar New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2004
    Сообщения:
    35
    А какова причина? Чем он не нравится загрузчику?
     
  12. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    Пустая секция не нравится загрузчику, компилятор не причем
     
  13. iix

    iix New Member

    Публикаций:
    0
    Регистрация:
    26 авг 2005
    Сообщения:
    1
    Ошибка в макросе stdcall при проверке на количество входных параметров



    include 'win32axp.inc'



    .code



    start:

    stdcall [MessageBox],HWND_DESKTOP,"Hi! I'm the example program!","Win32 Assembly",MB_OK

    stdcall [ExitProcess],0



    .end start
     
  14. SSERG

    SSERG New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2005
    Сообщения:
    6
    Адрес:
    Russia
    Вопрос такого характера:

    Мне надо было создать TREEVIEW.

    В сообщении WM_CREATE создаю его, но столкнулся с маленькой проблемой.

    В подключаемом файле 'apia\comctl32.inc' есть строчки с классами:

    ; Common control window classes

    []
     
  15. R_NEW

    R_NEW New Member

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


    Это не C. Естественно надо заводить переменную в секции данных. Пример:
    Код (Text):
    1. hello_msg equ "Hello, world"
    2. caption equ "Hello"
    3. invoke MessageBox,0,hello_msg,caption,0
    4. ; Препроцессор превращает в:
    5. push 0
    6. push "Hello"
    7. push "Hello, world"
    8. push 0
    9. call MessageBox


    И fasm будет ругаться на push "Hello"
     
  16. SSERG

    SSERG New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2005
    Сообщения:
    6
    Адрес:
    Russia
    R_NEW

    Тогда почему не работает при:
    szTreeView equ TREEVIEW_CLASS,0
    пишет
    Instruction: pushd 'SysTreeView32'
    Source: My.ASM[xx] и proc32.inc[17]
     
  17. SSERG

    SSERG New Member

    Публикаций:
    0
    Регистрация:
    23 июл 2005
    Сообщения:
    6
    Адрес:
    Russia
    Вот ещё привожу пример. Можно как говорится убедиться самим на практике.

    Попробуйте сначало скомпилировать текст как есть на FASMW 1.64,

    а потом поменять в секции данных на:

    []

    <font color="red]не, ну не понимают люди по-хорошему!</font><!--color-->
     
  18. IceStudent

    IceStudent Active Member

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

    Хватит постить в эту тему глупые вопросы. Тебе уже ответили:


    Хотя, это могут сделать за тебя макросы.
     
  19. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Что-то странное с этим resdata в версии 1.64... Пытаюсь скомпилить пример из своего тьюта по ОГЛь, он коверкает модельку :dntknw: (пример тут)
     
  20. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Блин, туплю... Эти fileres вообще не нужны были (я еще думал: "какого, надо писать +16 в смещении текстур"). Исправил свой тьют