|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.01.2011, 19:11 | #21 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> gcc компилим
ну gcc это особый случай ) по-любому ничего сложнее for юзать будет низя
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.01.2011, 19:56 | #22 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Я глянул ту ссылку. Но мне кажется для начала слишком громоздко и сложно. Хотелось бы для начала просто загрузить написанный на Си код.
Код:
Так вот хотелось бы узнать, что именно, какие ключи или флаги нужно прописывать при компиляции, что бы получить чистый машинный код, который поймет компьютер. Далее записать этот код на загрузочный сектор дискеты, и загрузить? |
27.01.2011, 20:08 | #23 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
странное у вас представление о компиляторах С, словно это компилятор С#, который генерит CIL.
вобще, надо беспокоиться не о том, чтобы процессор понял результаты работы компилятора (а куда он денется), а о том, чтобы код, сформированный компилятором, имел хоть какой-то смысл в вашем любимом бутсекторе. Под смыслом я понимаю настройку адресов, для начала. думаю, вы догадываетесь, что ехе файл предназначен не совсем для запуска из бутсектора, и помимо машинного кода содержит служебную информацию для ОС (ДОС, виндос, не важно), о том, как этот все попытаться запустить. ситуация с сом файлами попроще, но тоже имеет свои особенности
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
27.01.2011, 20:18 | #24 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Да, я понимаю что .ехе файл имеет дополнительную информацию, потому и спросил, как получить чистый код. Т.е все же целесообразней будет сделать загрузчик, который подготовит компьютер к работе уже с самой программой?
Мне все же интересно, именно на самом Си, существует ли пример, в котором только необходимый минимум указан? |
27.01.2011, 21:20 | #25 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
по ссылке есть исходники, и там отнюдь не фором ограничевается. Цитата:
надо забыть про libc(готовую) и если вам нужна printf то написать её самостоятельно(или посмотреть сорцы по ссылке) Цитата:
там есть готовый загрузчик, и так же примеры кодов для вывода текста и тп. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
28.01.2011, 01:27 | #26 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
я смотрел ссылку. Просто я думал, загрузчик тоже на чистом Си можно написать.
Как в той теме написано, я скомпилировал бинарный файл на Си, только интересно, почему он 4.01 кб весит, когда функция всего пару строк имеет. Получается это не чисто машинный код? И каким образом на Си вывести на экран хотя бы 1 символ, если не юзая библиотек, даже putchar(); нет? |
28.01.2011, 03:44 | #27 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ну хотя в том что такое текстовый буфер. Цитата:
там немного лишнего получается всетаки, но работает вы скомпилили obj(gcc) или уже bin(ld и objcopy) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
28.01.2011, 06:25 | #28 | ||
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
и тут же ниже:
Цитата:
я не спорю, опыт в создании загрузчиков у меня может не такой и большой, но что генерит компилятор С на вызов printf я примерно догадываюсь. Цитата:
вернулся ) ясно, 10-е прерывание заменяется на: Код:
Кстати, так и не увидел по ссылке что-либо сложнее for )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 28.01.2011 в 06:41. |
||
28.01.2011, 10:38 | #29 | ||||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
вообще оно понятно, что все сводится к банальным командам, но тем не менее нельзя это скидывать к фору, ибо там все сложнее. Цитата:
потому прерываний там нет.(всмысле тех же что в реальном режиме) Цитата:
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||||
28.01.2011, 11:42 | #30 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> работа с IDT/FDD для вас на уровне фора?
нет, конечно. Просто изначальный поитн был в том, что нельзя будет пользовать привычные сишниые библиотеки. А так, руками можно наворотить много чего, вопросов нет. Пишешь свой менеджер памяти, и вот уже malloc() заработал ) > в защищенном режиме процессора да, чё-то я не подумал, что биос тут не поможет. Но, думаю, автор топика в защищённый режим ещё не скоро доберётся ) Так что putc() он сможет реализовать одним вызовом int 10, но вот как сказать об этом компилятору С, без вставки на асме, я не знаю (об этом и был мой вопрос, кстати ). > работы с VGA да та же фигня, только вместо 0xB8000 юзаем 0xA0000, ну и фонты свои нарисовать. Только перейти в графику желательно _до_ перехода в защищенный режим. Автору топика может быть интересно заглянуть в исходники граба, на асме там совсем маленький кусочек, который стартует в CS:IP 0:0x7c00, его сложно на С компильнуть. Остальное чистейший С, без всяких библиотек (т.е. ничего сложнее for там нет, ггг).
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Звук Звууууук Звук ... не рабоает звук.. | Zvuuuuk | Компьютерное железо | 2 | 22.01.2011 17:53 |
Тюнер для гитары в делфи. (Считывать с микрофона звук и выводить какой частоты этот звук). | Серего | Мультимедиа в Delphi | 8 | 12.01.2011 14:39 |
Звук 5.1 | Air | Свободное общение | 4 | 20.05.2010 11:29 |
Звук | xakkkkker | Мультимедиа в Delphi | 4 | 05.05.2008 08:13 |
звук и делфи, левый правый звук | snusmumric | Win Api | 2 | 29.10.2007 11:10 |