Желающим FASM из WinAsm Studio

Тема в разделе "WASM.ASSEMBLER", создана пользователем shoo, 20 ноя 2008.

  1. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    Небольшое обновление WinAsm Studio IDE и надстройки FASM.
    Теперь объявления процедур для фасма обрабатываются корректно (раньше они обрабатывались по тем же правилам, что и для масма, поэтому параметры определялись неверно из-за разного формата их записи)

    т.е., теперь параметры корректно отображаются в выпадающих списках и в подсказке:

    [​IMG]

    [​IMG]

    [​IMG]
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    а где само обновление?
     
  3. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    Как обычно - на сайте IDE:
    1. http://www.winasm.net/forum/index.php?showforum=1
    2. http://www.winasm.net/index.php?ind=downloads&op=section_view&idev=12
     
  4. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    у меня такое ощущение, что там надо регится для скачивания :dntknw:
     
  5. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    на форуме давно уже как не нужно. а в downloads никогда и не нужно было - там выложен полный пакет, настроенный под фасм - в нем и надстройка новая, и студия, и проекты новые. в проектах добавлены практически только настройки - тип процедур "фасм", и только в проектах для виндоус.
     
  6. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Большое спасибо, обновил!

    А регится там все таки нужно для скачивания и с форума и с доунлоадов...

    Неплохо бы и здесь в инструментах выложить full package...
     
  7. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    значит изменилось - а я и не знал (всегда зареген :) )
    ----------------------------------------------
    действительно :) только что проверил. ну что ж - там свой "хозяин-барин", как и везде ;)
     
  8. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    поправил небольшую ошибочку - бряк при запуске линковки в фасме с пустой строкой (выплыл сто лет назад забытый int3) - просто не приходило в голову запускать линковку с пустой строкой - вот и не замечал... немецкий товарищ наткнулся...

    если нужно - могу собрать "комплексный" (штоп и фасм, и масм сразу)
     
  9. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    shoo
    нужно, конечно!
     
  10. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    зделаем (попожже)
     
  11. shoo

    shoo New Member

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

    думаю, какой пакет лучше сделать - побольше, поменьше? здесь мне сложно будет обновлять если что...

    + по самой студии справки на русском нет (меня на все не хватает)
     
  12. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    shoo
    Побольше :))

    Кстати, не в курсе почему автоочистка не работает?
     
  13. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    потому что есть две автоочистки :)

    первая - глобальная, она поддерживается студией, включается в ее настройках, распространяется на все проекты и очищает с ориентиром на масм. лично меня это не устраивает, поэтому у меня она выключена, но те, кто работают только с масмом - могут ее включить и пользоваться.

    вторая - "местная", поддерживается надстройкой - она включается в свойствах проекта, а также производит очистку или по умолчанию, или по списку масок. этой я пользуюсь.

    так вот, при выполнении "Выполнить всё" ("Go All") для режима масм все операции выполняются самой студией внутри, а поскольку в этом случае я не могу узнать из надстройки - завершилось ли оно удачно или нет, то и не хочу из нее выполнять автоочистку, т.к. она должна выполняется только при успешном завершении операции.
     
  14. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    shoo
    А когда же она тогда срабатывает?
    И когда срабатывает автоочистка при бекапе проекта?
     
  15. shoo

    shoo New Member

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

    правила следующие:
    1.МАСМ
    без надстройки студия выполняет автоочистку своим способом, если стоит птичка "выполнять автоочистку" в настройках студии и операция "выполнить все" завершилась успешно. так же происходит для проектов режима МАСМ при установленной надстройке. при этом студия не анализирует ERRORLEVEL вызываемых инструментов, а анализирует их консольные сообщения.

    также автоочистка выполняется непосредственно, если явно выбрана опция меню. если установлена надстройка, то непосредственный вызов автоочистки перехватывается и проверяется - если есть список масок в свойствах проекта, то выполняется очистка средствами надстройки, иначе - вызывается "студийная" очистка.

    2.Все режимы:
    при архивировании, сохранении как шаблона и клонировании используется птичка в свойствах проекта, если она включена и в свойствах проекта заданы маски, то выполняется очистка по маскам, иначе вызывается внутрення очистка студии.

    т.е. совет для МАСМ-а: если пользуетесь глобальной опцией - не используйте маски, иначе в разных случаях очистка будет выполнятся по-разному, если хотите пользоваться масками - не пользуйтесь глобальной опцией.

    остальные режимы - при операции "выполнить все" производится надстройкой при установленной птичке в свойствах проекта, кроме:

    3.AUTO - автоочистка не производится, т.к. невозможно узнать ERRORLEVEL (надстройка анализирует его)

    4.BATCH - не производится, если включено "игнорировать ошибки" или выключено "перенаправлять вывод" (также невозможно узнать ERRORLEVEL)

    5.МАКЕ - производится всегда

    6.FASM - не производится если после fasm-a используется линковка и включено "игнорировать ошибки"

    причем автоочистка в этих режимах производится после закрытия диалога "успешного завершения" "позитивной" кнопкой (готово, выполнить или отладка), если нажать "отмена" - этого не будет (как и не произойдет автоувеличение версии)

    (ответ тянет на раздел к справке :)
    ============================================
    если чего-то не так работает, как здесь описано - прошу описать ситуацию
     
  16. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    на форуме висят исходники надстройки

    ее "сердце" - таблица переходов в файле cmd_tabs.inc:
    Код (Text):
    1. ID_CMD_XTAB cmd_tab,id_tab,cmd_count,\
    2.     cclean,     IDM_MAKE_CLEAN,,                    \
    3.     f_comp,     IDM_MAKE_ASSEMBLE,,                 \
    4.     f_link,     IDM_MAKE_LINK,,                     \
    5.     f_go,       IDM_MAKE_GO,,                       \
    6.     f_run,      IDM_MAKE_EXECUTE,,                  \
    7.     f_debug,    IDM_MAKE_DEBUG,,                    \
    8.     f_rc,       IDM_MAKE_COMPILERESOURCE,,          \
    9.     f_cust,     0,f_cust_id,                        \
    10.     f_scan,     0,f_scan_id,                        \
    11.     f_env,      0,f_env_id,                         \
    12.     r_exp,      IDM_RESOURCES_DEFINITIONSMANAGER,,  \
    13.     s_rel,      IDM_MAKEACTIVERELEASEVERSION,,      \
    14.     s_deb,      IDM_MAKEACTIVEDEBUGVERSION,,        \
    15.     pprop,      IDM_PROJECT_PROPERTIES,,            \
    16.     hostm,      0,hostm_id,                         \
    17.     show_out,   0,show_out_id,                      \
    18.     a_create,   0,a_create_id,                      \
    19.     a_convert,  0,a_convert_id,                     \
    20.     a_archive,  0,a_archive_id,                     \
    21.     a_clone,    0,a_clone_id,                       \
    22.     a_sv_tmpl,  0,a_sv_tmpl_id,                     \
    23.     a_of_curr,  0,a_of_curr_id,                     \
    24.     a_of_proj,  0,a_of_proj_id,                     \
    25.     a_of_tmpl,  0,a_of_tmpl_id,                     \
    26.     a_of_cach,  0,a_of_cach_id,                     \
    27.     a_favorit,  0,a_favorit_id,                     \
    28.     a_op_ext,   0,a_op_ext_id,                      \
    29.     del_proj,   0,del_proj_id,                      \
    30.     f_cr_emb,   IDM_NEWPROJECT,,                    \
    31.     rem_file,   IDM_PROJECT_REMOVEFILE,,            \
    32.     save_start, IDM_SAVEPROJECTAS,,                 \
    33.     save_start, IDM_PROJECT_RENAMEPROJECT
    левая колонка - метки в коде, справа - опции меню (встроенные и добавленные). т.е. при желании отсюда легко попасть к месту в коде, где чего-то перехватывается и обрабатывается ;)
     
  17. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Если можно, пара вопросов не по надстройке. Почему изменение опции "Pelle Tools" задействуется только при переоткрытии проекта? Почему я не могу использовать "Debug" при разработке DLL? Почему в режиме MASM нельзя указать Command Line для "Go All" ? Почему в режиме MASM не появляется диалог "Операция завершена успешно" после сборки?
    Вроде все :)
     
  18. shoo

    shoo New Member

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

    возможно, что изменение этой опции на встроенном диалоге свойств (из студии) вступает в силу сразу, а на расширенном (из надстройки) - нет, так как надстройка только изменяет флаг в проекте, а механизма сообщить студии, что свойства проекта изменились, (кроме его перезагрузки) нет. это, кстати, может относиться и к некоторым другим свойствам - не на все из них студия экспортирует указатели.

    не понял, не работает переключение Debug/Release? в масме? (в фасме точно работает, т.к. сама надстройка - это длл, которую я постоянно в разных версиях собираю)

    потому что это в самой студии не предусмотрено, это чисто фичи надстройки. но и это не проблема - проекты масма можно прекрасно собирать в режиме batch со всеми недостатками и преимуществами. щас подготовлю примерчик :)
     
  19. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Нет, я имею ввиду Make->Debug (Ctrl+F9). Было бы неплохо подгружать скомпиленную DLL в OllyDbg или назначить дебаггером свой лоадер...
     
  20. shoo

    shoo New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2003
    Сообщения:
    1.537
    Адрес:
    Ukraine
    прилагаю примерчик: масм через пакетный режим

    а также: полный пакет WinAsm Studio 5.1.7.0 специально для васма. если уважаемые админы выложат в инструменты - будем признательны.

    ======================================

    заменил на новый. можно заменять в инструментах.

    -------------------------------------------------