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

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Линковка COFF OBJ файла для PMODE с помощью wlink

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


Дата: Май 18, 2003 13:10:47

Линковка COFF OBJ файла для PMODE с помощью wlink от WATCOM
Не получается верно слинковать COFF OBJ файл.

вот простейший пример:

;===================================================
format COFF

;---секция кода----------------------------------------
section '.code' code

public _start


_start:
jmp _main
db 'WATCOM'


_main:

mov eax, testik



mov ax, 4c00h
int 21h



;-----секция данных-----------------------------------------
section '.data' data

testik db 'ok',0
;=====================================================================

выполняю
fasm testik.asm testik.obj

после
wlink testik.lnk

в файле testik.lnk
прописано:
op st=8192
form os2 le
file fastc2.obj
name fastc2.exe
op stub=wdosxle.exe


в итоге wlink ругается:
WATCOM Linker Version 11.0c
Copyright by Sybase, Inc., and its subsidiaries, 1985, 2000.
All rights reserved. Watcom is a trademark of Sybase, Inc.
loading object files
Warning! W1014: stack segment not found
Warning! W1023: no starting address found, using 0001:00000000
creating an OS/2 linear executable

Вопрос:
-как определить сегмент стека?
-как определить стартовый адрес?


Дата: Май 18, 2003 13:49:51

wlink /?
...
| "STack"=n | "START="symbol_name
...

Оно?


Дата: Май 18, 2003 14:11:26

Проверил. Fasm'a у меня нету (вернее, я с ним не особо знаком)
Есть Nasm.
Чтобы определить стек для OS/2 LE нужна такая секция:
test.asm:
[bits 32]
[section .code class=code] ;
global start
start:
xor eax, eax
ret
[section .stack class=stack] ; имя секции может быть другим

test.lnk:
op st=8192
form os2 le
file test.obj
name test.exe
op start=start

nasm -f obj test.asm
wlink @test.lnk

Open Watcom Linker Version 1.0
...
loading object files
creating an OS/2 linear executable

все.


Дата: Май 18, 2003 14:14:45

Думаю, что у fasm'a есть аналогичные опции для секций.


Дата: Май 18, 2003 14:18:41

Да, еще одно. AFAIK в COFF нельзя задать стековую секцию.
(Поправьте, если это не так)
Так что использовать следует OMF.


Дата: Май 18, 2003 17:15:30

wlink стартовый адрес нормально скушал :)
А вот выходной формат OMF, FASM v1.45 не поддерживает,
и действительно секция stack для него не знакома.
Выход не как нормально собрать файл при помощи FASM
не получится?

Расширителю доса WDOSX можно скормить конечно .exe(PE) файл
и получить то что нужно.
Но хотелось бы собрать способом который описан выше.
Может у кого нить есть соображение по поводу FASM'а?
COFF'формата?

Есть такая утилита 'coff2omf.exe' и действительно
с помощью ее можно получить omf. Но не чего на предмет сегмента
стека не обнаружено.
По прежнему wlink ругается:
Warning! W1014: stack segment not found


Дата: Июн 26, 2003 20:02:16

Кто занимается NASM дайте ХЕЛП пожалуйста! Как объявляются процедуры и с какими параметрами?? А также как связываетс я с кодом из C++!!!

А если есть дока по этому то вообще благодарен буду!!


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