Print This Post Пакет для компиляции MASM32

Четверг, 27. Август 2009
Раздел: Assembler, автор:

Многие личности в комментариях на блоге спрашивают, как скомпилировать какой-нибудь исходник masm32. Чтобы решить этот вопрос, собрал небольшой комплект для быстрой компиляции, не требующий установки. Комплект содержит 64-байтный стаб, ассемблер последней версии, патченный линкер, не оставляющий в exe-файлах сигнатуры с информацией о компьютере. Бинарные файлы будут очень маленького размера.

Распаковываем архив в какую-либо папку, потом в ту же папку копируем исходники для компиляции (*.asm, иногда *.rc и *.def).
Открываем asm-файл в блокноте, заменяем все строки вида
\masm32\include\***** на include\*****
и
\masm32\lib\***** на lib\*****

Запускаем cmd.bat. В открывшейся командной строке пишем:

make_exe имя_asm_файла - для компиляции простого exe-файла (имеется только файл *.asm);

make_exe_res имя_asm_файла - для компиляции exe-файла с ресурсами (имеются файлы *.asm, *.rc);

make_dll имя_asm_файла - для компиляции простого dll-файла (имеется только файл *.asm и файл *.def);

make_dll_res имя_asm_файла - для компиляции dll-файла с ресурсами (имеются файлы *.asm, *.rc, *.def);

В результате получим exe или dll файл и несколько вспомогательных (*.res), которые можно удалить.

Скачать: RAR

 Обсудить на форуме


Получать обновления на почту:     

Комментариев: 7 к “Пакет для компиляции MASM32”


  1. babywka :

    Kaimi помоги плз.Когда захожу в cmd.exe ввожу make_exe имя файла_asm,вылазит надпись:"ML" не является внутренней или внешней командой,исполняемой программой или пакетным файлом. Как это решить?

    [Ответить]


  2. babywka :

    все разобрался

    [Ответить]


  3. vok :

    если ты разобрался может стоило бы рассказать?

    [Ответить]

  4. vok,
    Тут ошибка небольшая.
    Вот корректный файл make_exe.bat:

    @echo off
    cls

    SET PATH=C:\Masm32\bin

    bin\ML /nologo -c -coff %1.asm
    if errorlevel 1 goto terminate

    bin\LINK /nologo %1.obj /SUBSYSTEM:WINDOWS /STUB:64stub.exe /FILEALIGN:512 /VERSION:4.0 /MERGE:.rdata=.text /ignore:4078 /RELEASE /BASE:0x400000

    if errorLevel 1 goto terminate

    echo OK

    :terminate

    [Ответить]


  5. Vegas :

    проще воспользоваться файликом с http://sysman.narod.ru/projects/masm32fc/

    простота в одном клике =)

    [Ответить]


  6. GrAY :

    Делаю по инструкции, строки вот так оставляю

    windows.inc
    macros\macros.asm
    macros\windows.asm
    macros\inject.asm

    вот так оставил вот такая ошибка вылазиет

    http://s47.radikal.ru/i117/1107/bf/d3a4001aa15f.jpg

    [Ответить]

  7. Огромное спасибо, очень полезный мануал. Только путь направить в правильное русло:
    SET PATH=D:\compiler_minimal\bin

    [Ответить]


Оставьте ваш комментарий