Include для UASM

Тема в разделе "UASM", создана пользователем Intro, 9 дек 2022.

  1. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    601
    Мои файлы для UASM. Пока не настроено полностью, в точности msvcrt.inc, там надо прописать все правильные прототипы для контроля параметров, иначе при неправильных параметров компилятор не выдаёт ошибку, а программа не работает, лишний гемор при отладке.
    ЗЫ
    Блин, три одинаковых файла загрузил. :scratch_one-s_head:
     

    Вложения:

    • include.zip
      Размер файла:
      12,9 КБ
      Просмотров:
      342
    • include.zip
      Размер файла:
      12,9 КБ
      Просмотров:
      326
    • include.zip
      Размер файла:
      12,9 КБ
      Просмотров:
      347
  2. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    601
    Кстати, такие функции как printf, sprintf я сделал через макрос, так что поддерживает непосредственный ввод строки, взятие адреса и кастинг real4 -> real8
    Вот пример.
    Код (ASM):
    1. local param:real4, NameFunc[128]:byte
    2. ...
    3. printf("Param = %f, Name funct: '%s'\n", ^param, &NameFunc)
    И вроде некоторые макросы должны работать в МАСМ, но не уверен, делал давно.
    И ещё align_proc выравнивает процедуры байтами 0CCh, чтобы обмануть IDAPro
     
    Последнее редактирование: 8 янв 2023
  3. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    352
    Кстати, и про это я думал и занимался недавно - только сделал пока на FASM64. :) Нужно помощи у Mikl___'а попросить для реализации на MASM64, ну а может и сам справлюсь.
     
  4. HESH

    HESH Active Member

    Публикаций:
    2
    Регистрация:
    20 мар 2008
    Сообщения:
    143
    Вооружайся :rtfm:
     

    Вложения:

  5. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    601
    HESH, макросы которые с масм идут. У меня переделанные, например, в строке нельзя указывать символы !<>() и я постоянно забываю, как там надо вызывать их не явно, и чтобы постоянно помнить, надо так, /|/{/}/[/] как видно по форме помнишь, это и в тексте лучше видно. В стандартных макросах там по другому сделано и проблемы с real4, надо вручную кастинг делать, строки тоже криво работают, строка должна объявляется в секции .const, выравниваться на 4 или 8, и ноль терминальный. Вот и приходится свои велосипеды изобретать, потому что стандартные работают криво.
    Я ещё придумал как проблему запрещённых символов обойтись в UASM, просто строка на char разбивается, т.е на цифровые макропеременные, и никах проблем, назовём функцию например FORCHAR, работает как FORC, но выдаёт число символа. Во обще макросистему надо переделать, создав простой внутренний ЯП, упрощенный Lua, есть числа целые, дробные, строки, таблицы и нужный набор функций.
     
  6. HESH

    HESH Active Member

    Публикаций:
    2
    Регистрация:
    20 мар 2008
    Сообщения:
    143
    Сюда еще загляни обязательно :read:
     
  7. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    601
    Недоделанный вариант для х64
    С х64 у меня как раз проблемы, не доделано, не систематизировано. По этому в основном использую х86-32, там всё получше.
     

    Вложения:

    • macroses.rar
      Размер файла:
      2,2 КБ
      Просмотров:
      311
  8. Intro

    Intro Active Member

    Публикаций:
    0
    Регистрация:
    29 авг 2009
    Сообщения:
    601
    Обновление macros.asm и msvcrt.inc
    Поместить в \assemblers\include . Так у меня настроены пути, msvcrt так и не доделал, я обычно добавляю прототипы по мере надобности.
     

    Вложения: