Вопрос по bat файлу.

Тема в разделе "WASM.BEGINNERS", создана пользователем asmlamo, 31 июл 2007.

  1. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Я компилирую свои asm файлы используя bat файл вида :

    ml /c /coff "%1.asm"
    link /ALING:1024 /SUBSYSTEM:WINDOWS /section:.text,ERW "%1.obj"
    del "%1.obj"




    Компилирую из командной строки.

    Примно так:

    compil.bat myproc.asm


    Но постоянно нужно приводить к виду:

    compil.bat myproc

    Т.е. забивать .asm

    Как переписать батник что бы можно было компилировать в виде:

    compil.bat myproc.asm
     
  2. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    ээээ...
    либо
    ml /c /coff %1
    либо вы плохо изьясняетесь на русском
     
  3. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    asmlamo
    Код (Text):
    1. @echo off
    2. setlocal
    3.  
    4. if "%~1" == "" goto done
    5.  
    6. set TARGET=%~dpn1
    7.  
    8. if exist "%TARGET%.exe" del "%TARGET%.exe"
    9.  
    10. ml.exe /c /coff %1
    11. if not exist "%TARGET%.obj" goto done
    12.  
    13. link /ALING:1024 /SUBSYSTEM:WINDOWS /section:.text,ERW "%TARGET%.obj"
    14.  
    15. :done
    16. if exist "%TARGET%.obj" del "%TARGET%.obj"
     
  4. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    q_q большое спасибо !

    С меня пиво и сигареты :)
     
  5. spencer

    spencer New Member

    Публикаций:
    0
    Регистрация:
    15 авг 2005
    Сообщения:
    277
    мой вариант, почти тоже самое:
    Код (Text):
    1. echo off
    2. if exist %1.obj del %1.obj
    3. if exist %1.exe del %1.exe
    4. ml.exe /coff /nologo /c /ID:\ASM\masm32\include\ %1.asm
    5. if not exist %1.obj goto over1
    6. link /subsystem:windows /align:16 /release /libpath:D:\ASM\masm32\lib\ /ignore:4078 /ignore:4108 /stub:dos.stub /merge:.rdata=.data /merge:.data=.text /section:.text,ERW  %1.obj
    7. :over1
     
  6. device

    device Reflection

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    1.198
    Адрес:
    RF
    А Makefile че не рулит???

    ------------------- configure.ac---------------
    Код (Text):
    1. AC_PREREQ(2.59)
    2. AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
    3. AC_CONFIG_SRCDIR([myprog.asm])
    4.  
    5. #AC_IN_LOCAL (ASSEMBLER)
    6. $asmprog="myprog.asm";
    7. echo "creating Makefile..."
    8. echo "all:\n\tml /c /coff \"$asmprog.asm\"\nlink /ALING:1024 /SUBSYSTEM:WINDOWS /section:.text,ERW \"$myprog.obj\"\nrm *.obj">Makefile;
    9.  
    10. AC_OUTPUT
    ------------
    Далее - Открываем консоль---
    Код (Text):
    1. autoconf
    2. ./configure
    3. make
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    makefile — прошлый век. Jamfile — наш выбор :)
     
  8. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
    Регистрация:
    7 май 2007
    Сообщения:
    431
    IceStudent
    Это что такое?
     
  9. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Mental_Mirror
    Boost build, тулза для сборки. Удобна, расширяема.
     
  10. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Рулит но в моем случае из пушки по воробьям ...

    А мы так мелочевкой балуемся ...

    В перспективе перейду на Makefile.
     
  11. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Еще вопросик в догонку ...

    Во времена ДОС я прописывал ассоциации для *.asm файла.

    Навел на ASM файл нажал ввод и автоматом исполнилось compil.bat myproc.asm

    Возможно ли это в Win XP или средствами FAR ?
     
  12. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    asmlamo
    угу, возможно
    создавай раздел HKEY_CLASSES_ROOT\.asm . в параметр - "По умолчанию" вписывай любое имя, например asmfile.
    Потом создай раздел HKEY_CLASSES_ROOT\asmfile\shell\open\command. в параметр - "По умолчанию" вписывай что-то типа "c:\compil.bat %1"
     
  13. Mikl_

    Mikl_ New Member

    Публикаций:
    0
    Регистрация:
    14 ноя 2006
    Сообщения:
    907
    asmlamo
    в XP Мой компьютер->Сервис->Свойства папки->Типы файлов->Создать
    Связываем файлы с расширением .asm с bat-файлом в котором "%~n1.asm"
    в FAR->F9->Commands->File associations->bat-файл в котором "%1.asm"
     
  14. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    + к этому на вкладке "дополнительно" задаем неск-ко комманд. У меня open->открыть файл в редакторе, masm->компилировать и линковать через masm.bat, fasm-> собрать с помощью fasm.bat. Данные пункты появляются в контекстном меню при щелчке по файлу asm правой кнопкой мыши. Удобно. ИМХО, конечно.
     
  15. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.742
    Созрел для Makefile ...

    Где правда его взять ? У меня есть nmake это то что нужно ???
     
  16. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Написать. makefile - это файл такой, скрипт для ?make. Дока обычно идёт в комплекте.