Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.251.155] |
|
Сообщ.
#1
,
|
|
|
Всем привет!
Хочу с помощью GCC сгенерить ASM-файл с 16-битным кодом (типа как под DOS, а не 16-битный Windows). Пишу: gcc -S -m32 -masm=intel -mtune=i386 -O2 %1 Меняю -mtune=i386 на -mtune=i286, вообще отказывается работать (error: bad value (i286) for -mtune= switch) Реально ли это сделать и как? Желательно чтобы были билжние вызовы. А вообще в идеале - чтобы вывод был не в GNU ASM, а NASM (или хотя бы MASM). Или, может, есть другие компиляторы C/C++? Но не древние типа Borland C++ 90-х годов, а нормальные современные, оптимизирующие... Добавлено И ещё интересует вариант компиляции в OBJ (OMF или COFF, не ELF). Добавлено Короче, суть в том, чтобы запихнуть в загрузчик (он будет в нескольких секторах: MBR+остальные) сишную процедуру. |
Сообщ.
#2
,
|
|
|
Цитата Jin X @ Или, может, есть другие компиляторы C/C++? Но не древние типа Borland C++ 90-х годов, а нормальные современные, оптимизирующие... А какая тебе разница, если работает ? Древние оптимизировали не хуже. Скорее наоборот. Сейчас DOS мало кому интересен, значит современный компилер для неё вряд ли будет блистать совершенством. ---- www.ya.ru, ищем "GCC для DOS" Получаем ссылку: GCC for MSDOS Или тут Но я с этим не разбирался. |
Сообщ.
#3
,
|
|
|
ЫукпШ, вторую ссылку я видел. Там свои нюансы.
А первую надо глянуть, спасибо |
Сообщ.
#4
,
|
|
|
GCC для DOS это тоже 32-битные компиляторы. В DOS можно было запускать программы в защищённом 32-битном режиме. Для этого использовался DPMI (DOS Protected Mode Interface), реализуемый посредством программ типа DOS4GW, PMODE и других. В Windows 98 этот интерфейс предоставлялся в окне DOS самой системой. Но, начиная с Windiws 7, его, похоже, выпилили. Более того, даже с расширителем такие программы перестали запускаться.
|
Сообщ.
#5
,
|
|
|
Та не, работает. В 32-х битах.
Добавлено Возможно, DOS-экстендеры испытывают проблемы, но DPMI на месте. |
Сообщ.
#6
,
|
|
|
Цитата ЫукпШ @ Древние оптимизировали не хуже. Скорее наоборот. А можно пруф этого? Ну типа "вот такой-то код древним компилятором оптимизировался вот так, а новым вот так, и это хуже". Как-то маловероятным кажется это утверждение. |
Сообщ.
#7
,
|
|
|
Я бы не сказал, что древние компиляторы оптимизировали лучше или даже на том же уровне. На своем опыте вижу, что GCC 7+ ушел далеко вперед даже от GCC 4, не говоря уже о более древних. То же самое с Visual Studio 2017 в сравнении с Visual Studio 2008.
|
Сообщ.
#8
,
|
|
|
Цитата OpenGL @ Цитата ЫукпШ @ Древние оптимизировали не хуже. Скорее наоборот. А можно пруф этого? Ну типа "вот такой-то код древним компилятором оптимизировался вот так, а новым вот так, и это хуже". Как-то маловероятным кажется это утверждение. Это бессмысленное мероприятие и не возможное. Нет новых компилеров для DOS, и не предвидется. Как тогда сравнивать ? Если и будет что-то сделано, то каким-то энтузиастом-одиночкой. Маловероятно, что это будет компьютерный гений, затмивший своим интеллектом спецов из Борланда. Пусть даже из 1990 года. Совершенство старых компилеров для DOS - это моё мнение и точка. Просто мне очень часто приходилось смотреть ассемблерные листинги С-программ. Иногда и сейчас приходится. Поэтому у меня такое мнение и пруфы мне не нужны. С точки зрения совершенства продукция Борланда была весьма хороша. Обычно к концу эпохи все инструменты достигают максимального совершенства. --- А вот GCC я бы не доверял никогда. Посмотрите на опции командной строки. Вся эта система задания параметров - какой-то непрерывный кавардак с бредом. Что твориться в голове авторов ? Разве можно им доверить что-либо серьёзное ? |