Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Как создать объектный файл masm32


Автор: tseburaska 2.3.2014, 17:40
Как создать объектный файл если начало такое D:\masm32\topgun.exe D:\MYPROG\atest.asm 

D:\masm32 это папка с подпапками ассемблера 

D:\MYPROG\atest.asm это моя программа

Допустим Как создать обьектны файл в D:\MYPROG ?


Вызывать через пуск выполнить или как?



Автор: tseburaska 3.3.2014, 19:32
,,,,  Дальше нам с вами необходимо создать объектный файл с расширением .obj и произвольным названием.  Для этого мы вызываем ассемблер. Введем в командную строку следующее, внимательно.
C:\MASM611\ml /c miprog.asm
Вот. Теперь нам необходимо произвести компоновку объектного файла. А для этого мы с вами введем в командную строку это 
   C:\MASM611\BINR\link /TINY miprog.obj,,NUL,,,
Вот. Этой строкой мы вызвали компоновщик, который и сделал необходимую нам работу. ,,,,

Что это написано?? Где и как найти эту командную строку? Я вхожу через cmd.exe

Автор: LeonidPr 4.3.2014, 08:01
Вот когда cmd.exe запустили видите моргающую палочку горизонтальную, вот она ваша командная строка, дальше ручками вводите то, что вам указывают. Ввели, нажимаете Enter, команда выполняется.
В вашем случае надо вводить (только удостоверьтесь, что вы находитесь в папке d:\myprog)
Код

D:\MASM32\bin\ml /c miprog.asm
D:\MASM32\BIN\link /TINY miprog.obj,,NUL,,,

Если ошибок не было, в папке d:\myprog должен появиться файл myprog.exe (или скорее всего .com, не помню точно ключи линкера).

Автор: tseburaska 4.3.2014, 11:00
Спасибо!!!!   Сейчас попробую.

Автор: tseburaska 4.3.2014, 11:26
Ассеблер я так понимаю действительно вызвался, хотя я его и не вижу. А появления еще какого то файла я пока не вижу. Может он появится и должен на втором шаге.

Автор: tseburaska 4.3.2014, 11:38
Что-то не выходит.

Автор: tseburaska 4.3.2014, 22:52
Бат файл может кто-нибудь откомментировать код?


set filename=%1 
set masm_path=\masm32 
if exist %filename%.rc ( 
%masm_path%\bin\rc /v %filename%.rc 
%masm_path%\bin\cvtres /machine:ix86 %filename%.res 
%masm_path%\bin\ml /c /Cp /Gz /I%masm_path%\include /coff /nologo %filename%.asm || exit 
%masm_path%\bin\Link /SUBSYSTEM:WINDOWS /ALIGN:16 ^ 
/LIBPATH:%masm_path%\lib /NOLOGO %filename%.obj %filename%.res || exit 
del %filename%.res 

pause 
else ( 
%masm_path%\bin\ml /c /Cp /Gz /I%masm_path%\include /coff /nologo %filename%.asm || exit 
%masm_path%\bin\Link /SUBSYSTEM:WINDOWS /ALIGN:16 ^ 
/LIBPATH:%masm_path%\lib /NOLOGO %filename%.obj 

pause

Автор: tseburaska 5.3.2014, 10:55
Спасибо!!!!   Сейчас попробую.

Автор: tseburaska 5.3.2014, 21:06
set filename=%1  rem мы создаем переменную в которую у нас помещается значение.. Запуская его мышью Вы не передаете в него никаких параметров.
set masm_path=\masm32  rem   мы создаем переменную в которую у нас помещается путь в masm32?
if exist %filename%.rc (   rem  если существует значение переменной filename .rc  это что?   А, это какое-то расширение.
%masm_path%\bin\rc /v %filename%.rc   rem  /v  это что означает?  Я нашол rc.exe  Это Microsoft Resource Compiler
%masm_path%\bin\cvtres /machine:ix86 %filename%.res  rem Я нашол cvtres.exe  Это Resource File To COFF Object Conversion Utility
%masm_path%\bin\ml /c /Cp /Gz /I%masm_path%\include /coff /nologo %filename%.asm || exit  rem /c /Cp /Gz /I% Это что?Действительно, это что? Я из
 rem всей строки понимаю только %masm_path% -это значение переменной.
%masm_path%\bin\Link /SUBSYSTEM:WINDOWS /ALIGN:16 ^  rem ^ - означает, что команда продолжается в следующей строке;Link - линковщик? \Link /SUBSYSTEM:WINDOWS /ALIGN:16 это что?
/LIBPATH:%masm_path%\lib /NOLOGO %filename%.obj %filename%.res || exit  rem Это что?
del %filename%.res  rem Это что?
)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)