Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 21:30   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Компилятор

Добрый день, в общем ситуация следующая, подскажите пожалуйста компилятор, который с генерирует машинный код, т.е. хочу написать загрузчик хотя бы дискеты без ос. Но асм не знаю, хочу написать на С
CodeNOT вне форума Ответить с цитированием
Старый 26.10.2011, 23:41   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Любой компилятор чисто компилируемого языка генерирует машинный код. Только он обычно окружается всякими красивостями для загрузки его в память загрузчиком определённой ОС.

Кроме того, я не очень понимаю, как на "чистом C" общаться хоть с каким оборудованием. В Си вроде бы нет операторов, которые бы преобразовывались в команды типа int, in, out, trap.
Abstraction вне форума Ответить с цитированием
Старый 27.10.2011, 08:44   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Кроме того, я не очень понимаю, как на "чистом C" общаться хоть с каким оборудованием. В Си вроде бы нет операторов, которые бы преобразовывались в команды типа int, in, out, trap.
вставки.
Цитата:
Любой компилятор чисто компилируемого языка генерирует машинный код. Только он обычно окружается всякими красивостями для загрузки его в память загрузчиком определённой ОС.
ну gcc/MinGW может, но первичный загрузчик писать, надо так или иначе на асме, 512 байт как никак.
да и все равно вам асм вставки будут нужны.

хотя раз загрузчик, то это 16бит, помоему тут gcc не может..надо чтото постарее, и напильником, чтоб узнать что и как там работает
(чтоб чистый бинарник был+вырезать лишнее)

почему эту тему игнорируют...не пойму, масса ведь полезного там(на первой странице, ядро написанное на С)
http://programmersforum.ru/showthread.php?t=25012
Цитата:
Любой компилятор чисто компилируемого языка генерирует машинный код. Только он обычно окружается всякими красивостями для загрузки его в память загрузчиком определённой ОС.
там больше дело не в красивостях, а в АПИ.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 27.10.2011 в 08:53.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.10.2011, 09:17   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
Кроме того, я не очень понимаю, как на "чистом C" общаться хоть с каким оборудованием. В Си вроде бы нет операторов, которые бы преобразовывались в команды типа int, in, out, trap.
врете... другой вопрос допустит ли ОС использование таких инструкций
counter вне форума Ответить с цитированием
Старый 27.10.2011, 09:28   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

кстати,
Код:
trap
интересно, что это за инструкция такая?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.10.2011, 10:24   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

counter,
Можно пример кода на "чистом C", без ассемблерных вставок, который бы вызвал 21 прерывание с заданными мной значениями на регистрах?

Пепел Феникса,
У Таненбаума так обозначается инструкция переключения в привилегированный режим. А как её обычно называют?
Abstraction вне форума Ответить с цитированием
Старый 27.10.2011, 10:46   #7
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
Сообщение от Abstraction Посмотреть сообщение
counter,
Можно пример кода на "чистом C", без ассемблерных вставок, который бы вызвал 21 прерывание с заданными мной значениями на регистрах?
http://www.codenet.ru/progr/cpp/spr/246.php
counter вне форума Ответить с цитированием
Старый 27.10.2011, 10:51   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

counter,
Спасибо.
Abstraction вне форума Ответить с цитированием
Старый 27.10.2011, 10:52   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
У Таненбаума так обозначается инструкция переключения в привилегированный режим. А как её обычно называют?
чтото под значение trap, попадает только тип обработчика в IDT.
может недокументированая команда, но смысл применения под вопросом.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 27.10.2011, 11:00   #10
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Пепел Феникса,
Уже сам нашёл. На x86 эта функциональность тоже возложена на int.
Abstraction вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилятор Ислам Помощь студентам 1 30.03.2011 17:52
C++ компилятор lamer69 Софт 5 08.03.2011 22:35
Компилятор С++!!! genrix Общие вопросы C/C++ 6 21.02.2011 18:22
Компилятор c++ Яр|/||< (^_^) Свободное общение 3 28.03.2010 20:15
Компилятор Лубышев Помощь студентам 7 15.10.2008 18:53