|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Компиляция бинарника
Нужно скомпилить код в бинарник. Не в exe или какой-нибудь elf, а в простой машинный код, без заголовков и прочей ереси. Должно получиться нечто на подобие .COM (только 32-битное). Мне не важно, какой язык, си или делфи. Главное - чтоб поддерживался встроенный ассемблер.
Кто-нибудь знает, чем и как это скомпилить? GCC/TCC/.../хзCC не предлагать, вся эта коллекция ГНУтых компиляторов не знает нормального встроенного ассемблера. Я уже пробовал ими компилить. jmp $ ; Happy End! The Cake Is A Lie. |
#2
|
|||
|
|||
масм или тасм
|
#3
|
||||
|
||||
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 28.09.2011 в 20:12. |
#4
|
||||
|
||||
Код:
gcc --save-temps ... gcc -i ... А зачем тебе, собственно, требуется это действие? Может, есть пути проще? Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#5
|
||||
|
||||
Я уже через Gcc и Tcc компилил сразу в bin. Все ок, только встроенная асма там, очень мягко выражаясь, идиотская. ИМХО это -
Код:
__asm__ __volatile__( "rep ; movsl\n\t" "testb $2,%b4\n\t" "je 1f\n\t" "movsw\n" "1:\ttestb $1,%b4\n\t" "je 2f\n\t" "movsb\n" "2:" : "=&c" (d0), "=&D" (d1), "=&S" (d2) :"0" (n/4), "q" (n),"1" ((long) to),"2" ((long) from) : "memory"); А нужно это затем, что я пишу прогу для загрузочной флешки, она должна работать без оси. Писать весь код на асме не охота. Поэтому сейчас асмовый загрузчик и дальше хочу использовать высокоуровневые ЯП. jmp $ ; Happy End! The Cake Is A Lie. |
#6
|
||||
|
||||
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#7
|
||||
|
||||
Мм. Тут асма конечно получе. Но тоже далеко не фонтан.
Спасибо, M.A.D.M.A.N. Однако жду еще предложений. Это остается на крайний случай. jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
||||
|
||||
Не знаю, не знаю. Моё мнение, что MASM достаточно хорошо поддерживает различные конструкции для приближения к языку "высокого" уровня. К тому же имеются сторонние расширения, позволяющие работать с объектами.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
||||
|
||||
Все-таки приближение к ЯП высокого уровня и ЯП высокого уровня вещи несопоставимые. Все равно ассемблер остается ассемблером.
jmp $ ; Happy End! The Cake Is A Lie. |
#10
|
||||
|
||||
Никто и не спорит, но я не уверен, что Вам удастся найти именно то, что ищете.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#11
|
||||
|
||||
Вообщем пока сделал так:
Компилирую через BCC32 (слава богу там встроенный ТАСМ), собираю через TLink32 и добиваю GCC'шным objcopy. Получаю нормальный Си с хорошим встроенным ассемблером. Правда нельзя использовать статические и глобальные переменные, а также первой должна быть функция Start, вызывающая main (потому что main ставится в конце кода при компиляции т.к. он вызывает многие другие функции). Ну, это издержки. jmp $ ; Happy End! The Cake Is A Lie. |