Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.07.2008, 12:46   #1
chups
 
Регистрация: 15.07.2008
Сообщений: 3
Печаль Не удается создать исполняемый файл

Начал изучать ассемблер Попробовал создать из готового исходника исполняемый файл *.obj файл создал(командой ml pr2.asm /c /coff), но когда ввожу в консоль link pr2.obj он выдает LINK: fatal error LNK1561: entry point must defined
Если ввести в консоль link /subsystem:console /libpath: pr2.obj выдает ошибки:
LINK: warning LNK4001: no object files specified; libraries used
LINK: warning LNK4068: /MACHINE not specified; defaulting to IX86
LINK: fatal error LNK1159: no output file specified
объясните пожалуйста
ЗЫ. MASM 6.14

Последний раз редактировалось chups; 15.07.2008 в 12:48.
chups вне форума Ответить с цитированием
Старый 15.07.2008, 12:58   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А че тут обьяснять? Нет точки входа.
Короче Код в студию...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2008, 13:14   #3
chups
 
Регистрация: 15.07.2008
Сообщений: 3
По умолчанию

Код:
.386
 .model flat,stdcall
option casemap:none

includelib kernel32.lib
include d:\masm32\include\windows.inc
include d:\masm32\include\kernel32.inc

 .const

sConsoleTitle db 'My First Console Application',0
sWriteText db 'hEILo, Wo(R)LD!!'

 .code

Main PROC
  LOCAL hStdout :DWORD

  invoke SetConsoleTitle, offset sConsoleTitle
  invoke GetStdHandle, STD_OUTPUT_HANDLE
  mov hStdout,EAX
  invoke WriteConsole, hStdout, offset sWriteText, 16d, NULL, NULL
  invoke Sleep, 2000d
  invoke ExitProcess, NULL

Main ENDP

end Main
сразу оговорюсь что код не мой и пока что в ассемблере ничего не смыслю

Последний раз редактировалось B_N; 15.07.2008 в 13:54.
chups вне форума Ответить с цитированием
Старый 15.07.2008, 13:40   #4
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

includelib d:\masm32\lib\kernel32.lib

собирать так:
ml /c /coff [имя_файла].asm
link /SUBSYSTEM:CONSOLE [имя_файла].obj
пыщь
JTG вне форума Ответить с цитированием
Старый 15.07.2008, 15:00   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ага, А start: где?
Тут точно EntryPoint не хватает, вот пример:
Код:
.code  
  start
Main PROC  
  LOCAL hStdout :DWORD  
  
  invoke SetConsoleTitle, offset sConsoleTitle  
  invoke GetStdHandle, STD_OUTPUT_HANDLE  
  mov hStdout,EAX  
  invoke WriteConsole, hStdout, offset sWriteText, 16d, NULL, NULL  
  invoke Sleep, 2000d  
  invoke ExitProcess, NULL  
  
Main ENDP  
 
end start
P.S. Если асм не знаешь луче его подучи, иначе с ним смысла нет возиться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.07.2008, 16:23   #6
chups
 
Регистрация: 15.07.2008
Сообщений: 3
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
includelib d:\masm32\lib\kernel32.lib

собирать так:
ml /c /coff [имя_файла].asm
link /SUBSYSTEM:CONSOLE [имя_файла].obj
спасибо но я почемуто был уверен что я пробовал вариант с таким написанием адреса

Цитата:
P.S. Если асм не знаешь луче его подучи, иначе с ним смысла нет возиться.
Так я это и собираюсь начать делать, просто сначала хотел научиться компилировать файл, теперь научился. Буду приниматься за самое тяжелое.
chups вне форума Ответить с цитированием
Старый 15.07.2008, 21:07   #7
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

абсолютный путь можно и не указывать, просто компоновщику неверные параметры передавались
link /subsystem:console /libpath:[тут_должен_быть_путь_к_либам] pr2.obj

Точка входа кстати тоже В данном примере это не имеет значения, т.к. начало кода совпадает с точкой входа, но часто бывает и по-другому.
пыщь
JTG вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать exe-файл vitalik007 Общие вопросы Delphi 8 09.07.2010 11:45
Как создать txt файл Titan123 Общие вопросы Delphi 7 29.06.2008 16:56
Как создать бат файл? svarog45u Помощь студентам 2 18.11.2007 13:20
Как создать файл NTX MegaMax БД в Delphi 1 05.11.2007 10:09