Пакет MASM64

Тема в разделе "WASM.X64", создана пользователем Mikl___, 26 ноя 2025.

  1. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222

    Вложения:

    • win64a.inc
      Размер файла:
      1,4 КБ
      Просмотров:
      81
  2. Application

    Application Active Member

    Публикаций:
    1
    Регистрация:
    15 окт 2022
    Сообщения:
    160
    А об этом как то говорится в https://wasm.in/threads/skazki-djadjushki-rimusa-o-x64.31832/ ?
     
  3. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    418
    О чём спорим? О стандарте? Кто его принимает, конкретно для MASM64 - мы или Microsoft? Если Microsoft, то нужно опираться на него и делать в наших мануалах, как минимум - ДВА ВАРИАНТА одной и той же программы. Один - по стандарту, второй - для нашего удобства и на наше усмотрение (у Хатчисона - одно усмотрение, у Mikl___ - другое) . Если использование INVOKE - не поддержано в стандарте, то в стандартной версии программы, его и не нужно использовать. На первом этапе, особенно новичкам - это будет очень полезно. Потом, позже, будет увереннось: да, я знаю - ЭТО НЕ ПО СТАНДАРТУ, но я знаю, что я делаю - ЭТО СТАНДАРТ РАЗРЕШАЕТ, а вот грамотно ли я это использую (то чего нет в стандартных, поддерживаемых макросах и т.п.) - ЭТО УЖЕ ПОД МОЮ\НАШУ ОТВЕТСТВЕННОСТЬ.

    Я поэтому и предлагал, одним из вариантов, сделать поддержку Visual Studio - для компиляции так называемого стандартного кода - т.е. использовать только то, что есть в стандартной поддержке для MASM64 от Microsoft. И второй вариат, на наше усмотрение - то, что разрешает стандарт (invoke и т.п.) т.е. то, что не ломает ABI уровня ОС. C VS только вопрос c инклудами решить и всё (подключать\не подключать). Без инклудов, код, кстати, чуть больше, но зато чуть более наглядней и понятней.

    И ещё можно куда-нибудь специально скопировать - список всех макросов, которые Microsoft официально поддерживает в MASM64. Для удобства "населению" (IMHO).

    P.S. Всё вышесказанное - это IMHO, разумеется, а там как народ решит, так и будет.
     
  4. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Application,
    Начали обсуждение... Просто процитирую свой перевод Истории MASM.
    ...Microsoft Macro Assembler (MASM) появился в 1981, незадолго до выпуска Microsoft IBM PC-DOS, представлял собой ассемблер, использовавший синтаксис Intel. MASM стал самым популярным ассемблером, вероятно, благодаря успеху DOS и Windows. MASM почти 13 лет просуществовал как отдельный продукт Microsoft. Этот статус был утерян с версией MASM 6.11 в 1993, когда Microsoft заявила, что MASM больше не доступен в качестве самостоятельного продукта. С ростом популярности новых и разнообразных доступных языков программирования спрос на людей, желающих писать на чистом ассемблере, снизился, поэтому Microsoft понизила MASM до инструмента системного уровня C/C++. Microsoft выпустит исправления для новых версий MASM (в первую очередь для внесения изменений в будущие наборы микросхем Intel) до версии 6.14 в 1999. В 2000 Microsoft выпустила MASM 6.15 как дополнение к Visual. C++ 6.0. Начиная с версии 6.15, MASM входит в состав каждого выпуска Visual C++ через Microsoft Visual Studio вместе с остальным набором инструментов C/C++...
    Внимание вопрос ― А откуда еще доставать ml64 и link если они есть только в Visual Studio?
    То есть моя вина в том, что я попробовал программировать не только на masm. Но еще и застал tasm, до того, как навернулась фирма Борланд. А еще у меня есть не очень большой опыт программирования на nasm, PoAsm и fasm. Могу себе позволить сравнивать и лучшие куски из различных диалектов включать в проект. Почему сразу такое отторжение от vs и fasm?
     
  6. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    594
    f13nd

    Если нужно собрать пе, я бы на вашем месте задачу отдал нейронке, для этого понадобится спецификация mscoff и возможно хидеры. Для работы с дампами это самое удобное.
     
  7. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.153
    Если нужно собрать пе, я жму контрол-ф9. Не хочу, чтобы нейронка жала это за меня.
     
  8. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    тут можно продолжить потрошить VS и использовать h2inc.exe. Также достаточно подробные хидеры есть в fasm. Можно посмотреть у коллег в PoAsm, nasm. Можно поговорить на форуме masm32.com
     
  9. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    594
    f13nd

    А когда формат не стандартный, мин размера например. Читать маны и сурки загрузчика - можно, но долго. Это лучше ботам отдать.

    Трудность может быть с BDO: gemini не мог выполнить многопроход, но это уже не сборка структуры, а ассемблирование.
     
  10. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
    2026-03-08_07-56-43.png
    2026-03-08_07-55-38.png
    Если бы каждому на форуме давали доллар когда f13nd говорит что он кодит
    на fasm, а не на masm, мы бы летали на частных самолетах и жили на бали.
     
    Последнее редактирование: 8 мар 2026
  11. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.153
    Если мне надо собрать пе, я хочу самый стандартный из форматов пе. Используя нейронку ты заменяешь одну задачу другой: сначала ломаешь голову как сформулировать тз, а потом конролируешь, что за шнягу оно нагенерило. Оно может заменить собой поиск похожего решения, апи или библиотек в гугле, но не более того.
    --- Сообщение объединено, 8 мар 2026 ---
    Где ты видел самолет за 32 доллара? Если где-то такой есть, я тоже не откажусь.
    изображение_2026-03-08_080908530.png
     
    GRAFik нравится это.
  12. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
    А что делать с temphls.inc?
     

    Вложения:

    • temphls.inc
      Размер файла:
      178,9 КБ
      Просмотров:
      71
  13. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    4.222
    Research,
    а вы можете переписать temphls.inc чтобы вместе с .IF использовались >=, !=, <=, ==, <, > а не как у Василия
    {} или ~=не равно
    }больше
    }=больше или равно
    {меньше
    {= или ={меньше или равно
     
  14. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    418
    Mikl___, а инклуды (хидеры) для MASM64 и для MASM32 - они же абсолютно разные и не взаимозаменяемы. Я прав или не совсем?
     
  15. Research

    Research Active Member

    Публикаций:
    1
    Регистрация:
    6 янв 2024
    Сообщения:
    454
    Mikl___, переписать temphls.inc ?
    --- Сообщение объединено, 8 мар 2026 ---
    --- Сообщение объединено, 8 мар 2026 ---
     

    Вложения:

    Последнее редактирование: 8 мар 2026
  16. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    594
    Вот научил для сборки.

    Нужно указать формат дампа, версию/разрядность и можно тестить.
     

    Вложения:

    • PE.pdf
      Размер файла:
      3 МБ
      Просмотров:
      83
  17. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.153
    Два нюанса: 0x610 байт против 0x400, это не совсем минимум, и наконец получившийся дамп - не валидный PE файл :acute:
     
  18. GRAFik

    GRAFik Active Member

    Публикаций:
    0
    Регистрация:
    14 мар 2020
    Сообщения:
    418
    И, кстати, в -----> ( Machine 2 байта ): 0x014C ( IMAGE_FILE_MACHINE_I386 ) <------- тоже ошибка, должно быть наоборот : 0x4C01 :) У меня в Hex-редакторе, до сегодняшнего дня, пока так. :)
     
  19. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    2.153
    0x3C смещение в файле:
    AddressOfNewExeHeader EBA1F0Eh (как будто дикпик что-то литспиком хочет сказать)
    Как должно быть:
    AddressOfNewExeHeader 80h
     
  20. Ahimov

    Ahimov Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2024
    Сообщения:
    594
    f13nd

    Явно задал лимит:
    Идем дальше.
    --- Сообщение объединено, 8 мар 2026 ---
    Принял ошибку:
    --- Сообщение объединено, 8 мар 2026 ---
    Mikl___

    Какой был реально рабочий минимум и на какой системе ?
     

    Вложения:

    • PE(3).pdf
      Размер файла:
      3,2 МБ
      Просмотров:
      71