Соответствие ассемблер - FREE PASCAL

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Соответствие ассемблер - FREE PASCAL

Сообщение G_A_L » 27.02.2010 23:06:18

Есть ли версия ассемблера( отдельного ) для трансляции в объектный код, понимаемый FREE PASCAL, <имя модуля>.obj подключается в модуле на FREE PASCAL опцией {$L <имя модуля>.obj} . Все в среде MS DOS. Исходный текст ассемблерных файлов оттранслирован неизвестным ассемблером, но легко подключается классическим борланд паскалем. Сам FREE PASCAL не понимает объектный код файла <имя модуля>.obj.
G_A_L
незнакомец
 
Сообщения: 8
Зарегистрирован: 17.02.2010 21:19:59

Re: Соответствие ассемблер - FREE PASCAL

Сообщение SII » 27.02.2010 23:31:17

Классический Борланд Паскаль использует объектники формата OMF, который в 16-разрядной системе был стандартом. В 32-разрядных Виндах стандартом является COFF, ну а в Линухе -- ELF, хотя в Винде существует и OMF32 (но его вроде только Турбо Ассемблер производить умеет, а он уж миллион лет как не поддерживается). По всей вероятности, Фри Паскаль просто не понимает столь древний код.
SII
новенький
 
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград

Re: Соответствие ассемблер - FREE PASCAL

Сообщение скалогрыз » 27.02.2010 23:33:46

.obj это объектный формат данных компиляторов Borland (Turbo Assembler, C/C++). Если есть документация на .obj файлы, то можно попробовать прикрутить их поддержку в компилятор.

FreePascal использует объектный формат данных GNU tools (с расширением .o). Такие файлы создаются ассемблером 'as', входящим в комплект Cygwin и MinGw
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Соответствие ассемблер - FREE PASCAL

Сообщение SII » 28.02.2010 00:11:58

Ну, вот и объяснение. ГНУсные инструменты клепают Эльфы, а не ОМФ. Описание ОМФ нагуглить не проблема, а вот прикрутить поддержку...
SII
новенький
 
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград

Re: Соответствие ассемблер - FREE PASCAL

Сообщение Sergei I. Gorelkin » 28.02.2010 00:42:24

Эльфы только в линуксе. Для винды GNU as производит самый натуральный coff, хоть и с расширением .o.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Соответствие ассемблер - FREE PASCAL

Сообщение SII » 28.02.2010 01:42:51

Ну, всё равно не ОМФ, а Борланд Паскалю именно он нужен.
SII
новенький
 
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград

Re: Соответствие ассемблер - FREE PASCAL

Сообщение G_A_L » 28.02.2010 21:43:58

Да . . . . Мне бы без си и windows , переранслироваться в MS DOS. А так , правильно ли, что сейчас уже нельзя ничего найти для MS DOS, чтобы перевести ассемблерную программу в объектный код для FREE PASCAL? С уважением, ответьте
G_A_L
незнакомец
 
Сообщения: 8
Зарегистрирован: 17.02.2010 21:19:59

Re: Соответствие ассемблер - FREE PASCAL

Сообщение Sergei I. Gorelkin » 28.02.2010 22:07:41

Если программа написана на 16-битном ассемблере для MS-DOS, то скорее всего она без полного переписывания не состыкуется с 32-битным FPC, даже если удастся найти подходящий по выходном формату транслятор.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1406
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Соответствие ассемблер - FREE PASCAL

Сообщение and » 01.03.2010 18:31:42

Я запутался: так исходник asm есть? Или только obj?
Если исходник есть, то не вариант ли вставить его как asm-процедуру (-ы)?
Аватара пользователя
and
постоялец
 
Сообщения: 124
Зарегистрирован: 16.09.2009 17:11:01
Откуда: г. Гомель, Беларусь

Re: Соответствие ассемблер - FREE PASCAL

Сообщение G_A_L » 01.03.2010 21:02:46

Для вставки в исходный текст приходится перерабатывать исходный текст достаточно много для процедуры- сам модуль резко увеличивается в размерах. Да и программа требует переработки для ассемблерной вставки.
А есть ли досовский ассемблер 32 - разрядный с объектным кодом, который понимает Free Pascal?
И еще одна странность - в win2000 запуск и трансляция во free pascal модуля проходит нормально- без ошибок, при запуске той же оболочки под ms dos в формате записи (record) появляются ошибки, не позволяющие продолжить трансляцию дальше.
Если есть ассемблер под ms dos 32- разрядный , где его можно поискать.
G_A_L
незнакомец
 
Сообщения: 8
Зарегистрирован: 17.02.2010 21:19:59

Re: Соответствие ассемблер - FREE PASCAL

Сообщение SII » 02.03.2010 01:03:08

ДОС -- 16-разрядная система, никаких 32-разрядных трансляторов там никогда и не было. Позднее появились расширители ДОС, но это уже надстройки над системой. В любом случае, 16-разрядный код просто так 32-разрядным не станет, нужна ручная переделка.
SII
новенький
 
Сообщения: 64
Зарегистрирован: 24.06.2007 17:15:09
Откуда: Зеленоград


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 7

Рейтинг@Mail.ru