MASM 6.x

  • Автор темы _dimka_
  • Дата начала
Статус
Закрыто для дальнейших ответов.
D

_dimka_

Не могу получить ни одного файла.
Чё с этими ml.exe link.exe

везде в нете читаю надо так:
..\bin\ml.exe test.asm /AT
..\bin\link.exe test.obj /TINY

выдает такую ошибку:

ML.exe не является приложением WIN32.
затем появляется запрос на линковку.

А вот брал в нете просто masm.exe & link.exe
всё делал как в старом добром ASM.
Но мне нужна связь с DDK98.

Брал от туда грубо файлы и помещал в одном каталоге,
при компиляции выдаются куча ошибок о нерегестрированных констант и процедур (макросов прописанных в файлах DDK).

Может кто подскажет как подступиться?
 
D

Dico

Во первых так в дистрибутиве:

masm.exe - просто ассемблер
ml.exe - ассемблер и компановщик
link.exe - просто компановщик


А теперь сама сборка:
[] - необязательный пораметр!
all.asm -исходники
....
allx.asm


ml [ключи] all.asm [[ключи] allx.asm] ... [/link ключи- link-a]

masm [ключи] all.asm [, [*.obj] [,[файл листинга] [, [файл перекрёстных ссылок]]]]

link [ключи] *.obj [, [исполняемый файл] [,[файл карты] [,[файлы библиотек] [,[def-файл]]]]] [;]


Пример:

ml.exe /Zi /Fl all.asm


В примечание нужно добавить что клюяи к ml - чуствительны к регистру!!!!!!!!!!!!!!!!

Подробннее здесь по сборке :
 
D

_dimka_

Dico
Спасибо за помощь, хоть кто-то не зажал
:blink:
 
D

_dimka_

Я хотел спросить.

Вот я компилирую и на втором шаге, когда уже есть obj файл
LINK включает запросы
RETURN [-vxd.exe]:
и так далее

как быть с obj, если мне нужен VXD, а не EXE
может кто поможет? буду признателен за помошь
 
?

????

_dimka_
что-то типа:
Код:
ml-coff -c -Cx -DMASM6 -DBLD_COFF -DIS_32 vxd.asm
-coff - указывает объектный фоpмат COFF
-c - только ассемблиpование. Вызов линкеpа не пpоизводится, так как мы будем вызывать link.exe вpучную.
-Cx - сохpанять pегистp публичных, внешних имен.
-D - опpеделяет текстовый макpос. Hапpимеp, -DBLD_COFF опpеделяет текстовый макpос BLD_COFF, котоpый будет использоваться в ассемблиpовании. Если вы знакомы с c-пpогpаммиpованием, это идентично:

#define BLD_COFF

#define IS_32
#define MASM6

Код:
link -vxd -def:vxd.def vxd.obj
-vxd указывает, что мы хотим создать VxD из объектного файла.
-def:<.DEF файл> задает имя файла опpеделения модуля VxD.
 
D

_dimka_

да я так всё и делаю:

1 NAME=VMYD
2 $(NAME).vxd:$(NAME).obj
3 link -vxd -def:$(NAME).def $(NAME).obj
4 $(NAME).obj:$(NAME).asm
5 ml -coff -c -Cx -DMASM6 -DBLD_COFF -DIS_32 $(NAME).asm

при компиляции в 3 строке, почемуто запускается запрос о фйалах и def в
том числе. Но я же уже указал в командной строке. Сожет надо как-то сказать
MASM, чтобы тот использовал параметры.

Ничего не понимаю :(
 
D

_dimka_

Это MAKE файл, что-то типа bat-файла, который сам запускает
 
?

????

_dimka_
Что-то я вообще не понимаю :( ты ваполняешь линк а поптом мл ?

Попробуй для начала просто получить obj и def файл используя ml, а далее с помощью link получить твой vxd. MAKE соорудишь после ;)

З.Ы. MASM'а с собой нет - проверить не могу.
 
D

_dimka_

obj он создаёт
def я сам составляю и указываю его LINK

вот как именно получить VXD
я прописываю на исполнение
link -vxd -def:av.def av.obj

(в make файле всё запускается снизу вверх, ни я придумал)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!