Форум русскоязычного сообщества Ubuntu


Автор Тема: Компиляция gcc под dos  (Прочитано 1541 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AlexeyAkadem

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Компиляция gcc под dos
« : 09 Августа 2016, 13:47:18 »
Добрый день!

Можно ли как нибудь компилировать программу для MS-DOS/dos с помощью gcc ?

Перед созданием темы поиском пользовался.

ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 10/08/2016). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июля 2019, 01:37:18 от zg_nico »

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #1 : 09 Августа 2016, 14:06:23 »
можно, но в объектный код, а потом слинковать в MSDOS - с библиотеками оси. При этом Вы должны иметь необходимые для MSDOS хеадеры, а так же Вы должны указать компилятору тип памяти, которую будете использовать.

Оффлайн AlexeyAkadem

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #2 : 09 Августа 2016, 14:12:18 »
Я не планирую создавать программу для msdos. Я делаю её для чистой загрузки с диска.

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #3 : 09 Августа 2016, 14:18:25 »
Я не планирую создавать программу для msdos. Я делаю её для чистой загрузки с диска.
как это -
-- я вас не понимаю вы сами сказали - мсдос, а теперь не собираетесь ее делать ни как

Вы что хотите сделать прогу которая использует только биос материнской платы - тогда к чему вам вообще мс-дос - компилируйте под Линус и не мучайтесь, только не используйте системные обращения к оси - и будет вам щастье.

Оффлайн AlexeyAkadem

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #4 : 09 Августа 2016, 14:22:00 »
Вы не совсем поняли просто, вы правильно говорите что я хочу сделать программу которая будет только биосом пользоваться.
Я не хочу чтобы программа работала под linux, а была так сказать "системо независимой"
В общем хочу сделать что-то в роде копии ms-dos. У меня опыта С для этого достаточно.
Но вот единственная проблема - как компилировать под DOS
« Последнее редактирование: 09 Августа 2016, 14:24:30 от AlexeyAkadem »

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #5 : 09 Августа 2016, 14:28:48 »
Вы не совсем поняли просто, вы правильно говорите что я хочу сделать программу которая будет только биосом пользоваться.
Я не хочу чтобы программа работала под linux, а была так сказать "системо независимой"
В общем хочу сделать что-то в роде копии ms-dos. У меня опыта С для этого достаточно.
Но вот единственная проблема - как компилировать под DOS
Ну давайте по порядку - несколько вопросов????
1? как Вы собираетесь ее загружать в комп, без оси!
2? я так понял вам нужен инструмент для создания бинарника
3? для Вас критично - что ваша прога должна быть обязательно написана на Си? или достаточно использовать Ассемблер

Оффлайн AlexeyAkadem

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #6 : 09 Августа 2016, 14:32:22 »
1. Так же как linux и windows запускаются без каких-либо систем
2. Да нужно чтобы получился exe-шный бинарник разрядностью в 16 бит
3. обязательно на C

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #7 : 09 Августа 2016, 14:43:28 »
1. Так же как linux и windows запускаются без каких-либо систем
2. Да нужно чтобы получился exe-шный бинарник разрядностью в 16 бит
3. обязательно на C
боже мой у вас каша в олове
// за время общения вы несколько раз изменили свои условия исходной задачи
1? - как Вы собираетесь воспользоваться загрузчиком от оси, без слинковки с телом загрузчика исполняемого файла
2? -ехе-бинарников не бывает - это нонсенс. Сам формат ЕХЕ- подразумевает, что в бинарнике присутствует тело загрузчика от ОСИ, но вы упрямо повторяете, что  ось вас не интересует - и это есть нонсенс
3, - Си так Си - я не против, но все равно вы используя прерывания к биосу - вам придется все писать на языке Ассемблера! так что смысла не вижу о четком ограничении языка

** да и вообще Вами поставленая задача уходит из рамок практического программирования и врядли она кроме Вас конкретно кого-нить заинтересует.

Оффлайн AlexeyAkadem

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #8 : 09 Августа 2016, 14:44:48 »
Понятно, спасибо сам как нибудь разберусь

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #9 : 09 Августа 2016, 14:46:05 »
Я понял Вас - Вы хотите написать свою собственную ось!!
-- а смысл - ставте MS-DOS  и не мучайте сообщество вопросами...

Оффлайн AlexeyAkadem

  • Автор темы
  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #10 : 09 Августа 2016, 14:48:52 »
Ну, по всей видимости в данный момент я мучаю вопросами только одного человека

Оффлайн cargan

  • Активист
  • *
  • Сообщений: 488
  • Oderint, dum metuant
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #11 : 09 Августа 2016, 14:54:44 »
AlexeyAkadem, предлагаете дальше по-троллить сообщество?

Оффлайн virusoft

  • Активист
  • *
  • Сообщений: 323
    • Просмотр профиля
    • Virusoft
Re: Компиляция gcc под dos
« Ответ #12 : 09 Августа 2016, 18:45:57 »
1. Так же как linux и windows запускаются без каких-либо систем
Как бы перефразируя одного известного сатирика. Linux уже система.
Надеюсь вы это понимаете?

Цитировать
2. Да нужно чтобы получился exe-шный бинарник разрядностью в 16 бит
Требуется отделить вызов BIOS и MS-DOS друг от друга. Есть библиотеки которые используют исключительно функции BIOS. Другие задействуют системные вызовы MS-DOS для тех же самых операций. Вызывать функции BIOS'а очень удобно из ассемблера. Возьми тот же самый формат исполняемых файлов MS-DOS типа COM и подготовь в своей программе все функции загрузки и выполнения бинарных файлов 16-бит. Можешь писать это на Си встроенном в gcc, примеров навалом. Главное чтобы ты понимал как устроен твой код, в какой обстановке он должен работать, в каком месте кода какая функция и как вызывается и самое важное с какими параметрами. Я так понимаю что ты хочешь сделать программу, которая будет не зависеть от системы. Но эта программа тогда сама станет системой. И что она будет делать такая система? Выводить строку символов средствами BIOS?
А знаешь ли ты, что средства BIOS вообще не знают что такое файл?

Цитировать
3. обязательно на C
Да хоть на паскале inline() или на ассемблере db 0EAh
В языке Си, если ты его более-менее знаешь есть возможность писать команды в HEX формате. И компилировать их как они есть.
Если сделаешь, то познаешь работу программистов эпохи отсутствия языков высокого уровня.
« Последнее редактирование: 09 Августа 2016, 18:50:24 от virusoft »
Если работает - не трогай. Linux - гибкая система, но один раз прогнувшись может обратным ходом распрямиться и ударить по самому (…) месту. Думай о будущем и все будет хорошо.

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Компиляция gcc под dos
« Ответ #13 : 09 Августа 2016, 19:10:55 »
В общем хочу сделать что-то в роде копии ms-dos. У меня опыта С для этого достаточно.
Как бы не так.
Так же мне не дает покоя заголовочный файл stdio.h
Его тоже нужно найти в интернете и компилировать вместе с моей программой ?
Судя по вопросам - опыта явно недостаточно. Рекомендую вбить в поисковик "написание своей операционной системы". То что ты хочешь к dos не имеет ни какого отношения. И к exe тоже.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

 

Страница сгенерирована за 0.04 секунд. Запросов: 23.