· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Вопрос о компилировании и линковке проги с 32б регстрами

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


Дата: Дек 18, 2003 12:53:46

Доброго времени суток мастера.
Приношу извинения за глупый вопрос, но я не могу разобраться а сроки поджимают.

Прирывание int 1Аh ah=0B1h al=001h возвращает ответ в eax. (Например. Функций использующих 32 регистры несколько) Пришлось переписывать программу с поддержкой 32 битных регистров. сегменты задаю на манер:
codes segment 'code' use32

(компилируеться tasm без вопросов)
Если линковать tlink то появляеться ошибка:
32 -bit record encountered in module XXX.obj

заменяюt link на tlink /3
линкуеться без ошибок, но callы указывают на аддрес 0000:смещение.
те сегментный аддр ... не знаю что с ним происходит.
Причем все опрации с 32 б регистрами раскладываються на несколько мнемоник и если не ставить nopы затирают следомидущие :(

заменяю link на tlink32
получаю ошибку Fatal: Bad loc for fixupp in module 'XXX.obj' near file offset f6

Кто то подскажите (желательно с примером), как собирать такие программы ?

Очень надо, горю по срокам.

С уважением. Ворон.


Дата: Дек 18, 2003 17:58:23

Попробуй собирать с tasm32.exe и tlink32.exe , без сырца трудно сказать ...


Дата: Дек 18, 2003 18:58:55

Хмм... странно, что ничего не получается..
Я свою прогу, в которой и 16 и 32-битный
код имеется, компилил так (ml.exe v6.14,
ну а линковщик "досовский" конечно):
...
\masm32\dos\ml /c xxx.asm
\masm32\dos\link xxx.obj
\masm32\dos\exe2bin xxx.exe xxx.com
...

Ну и всё вроде... Вот такие пироги... :)

P.S.
Начало в исходнике такое:
.model tiny
.code
.586p
org 100h

start:
.........

cpuid использовал...

И вообще вопрос бредовый...


Дата: Дек 18, 2003 21:03:44

Ура все получилось. Помог MoKC0DeR.
Убрал use32 и все заработало и сall в том числе... 80)
Последовательность ;) оказалась
tasm32 usb /m2
tlink usb /3

Всем спасибо.


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