· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.HEAP —› FASM: как создать OBJ-файл?

Посл.отвђт Сообщенiе


Дата: Фев 3, 2003 16:49:37

1. Может ли FASM создавать OBJ-файлы для DOS и компоновать имеющиеся OBJ-файлы?
2. Где найти хорошую подробную документацию по FASM?


Дата: Фев 3, 2003 18:39:37

1. Может ли FASM создавать OBJ-файлы для DOS и компоновать имеющиеся OBJ-файлы?

Создавать - да. Компоновать, по-моему, нет.

2. Где найти хорошую подробную документацию по FASM?

В дистрибутиве :).


Дата: Фев 3, 2003 20:50:18

Спасибо! Но у меня еще вопрос: Как создать OBJ-файл, чтобы его, допустим, tlink съел.


Дата: Фев 3, 2003 22:24:21

FASM может создавать только COFF формат, значит компоновать надо Masm-овским линкером.


Дата: Фев 4, 2003 02:06:27

Может coff2omf.exe сработает?


Дата: Фев 6, 2003 18:03:07

Нет к сожалению coff2omf не прокатывает. По крайней мере мне результаты его работы не удалось подружить с lld


Дата: Фев 8, 2003 07:00:00

блин... а как же тогда библитеки писать и тому подобное?
Как хоть точку входа задать, а? А то после coff2omf tlink жалуется, что "no entry point".
Спасибо за ответы!


Дата: Фев 27, 2003 15:12:52

Конретно: как (чем и с чем) слинковать готовый пример из fam/exemles coff.obj ?
У кого - нибудь получилось и как?


Дата: Мар 3, 2003 11:29:03

Родной пример с FASMa, MSCOFF.ASM -> MSCOFF.OBJ:

format MS COFF
extrn '__imp__MessageBoxA@16' as MessageBox:dword
section '.text' code readable executable
public _demo
_demo:
push 0
push _caption
push _message
push 0
call [MessageBox]
ret
section '.data' data readable writeable
_caption db 'Win32 assembly',0
_message db 'Coffee time!',0

Далее:

c:\masm32\bin\LINK /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib MSCOFF.OBJ KERNEL32.LIB USER32.LIB
LINK : error LNK2001: unresolved external symbol _WinMainCRTStartup

Что она ещё хочет, ГАДИНА?
Может кто знает каким линкером и с какими либами?


Дата: Мар 4, 2003 16:47:26

А если точку входа поменять?
линкер тот-же либы наверное тоже, все работает
/ENTRY:demo


Дата: Мар 4, 2003 17:16:34 · Поправил: amigo

Может, этот пример на какие-нибудь Си рассчитан. Попробую схлестнуть его с Watcom C, в одной из его библиотек функция __imp__MessageBoxA имеется.

PS: а в user32.dll имеется просто MessageBoxA, без всяких импов. Попробуй отрезать префикс. Если не получится попробуй так: _MessageBoxA.


Дата: Мар 5, 2003 10:24:27

Thank you, dreamer2, именно так, но уже сам разобрался. А если заменить в исходнике метку _demo на _WinMainCRTStartup, то не нужно /ENTRY:точка_входа, работает по умолчанию. Теперь ещё научиться ресурсы приклеивать и можно работать в полной мере как с MASMом.
Дваждыаноним. Sorry, теперь трижды.


Дата: Мар 5, 2003 16:09:48

А с ресурсами вообще все должно быть как в масме, но я не пробовал, поскольку мне макросов ресурсов встроенных в fasm более чем...


Дата: Мар 5, 2003 17:42:32

Да, но встроенные в fasm по-русски не понимают. А какими-нибудь reseditor-ами лезть в екзешник.. неэстетично :)


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.067