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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2010, 03:46   #1
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию вставки Assembler'а

Посмотрел в интернете о вставках кода ассемблера, и для проверки написал такой код:

Код:
#include <stdio.h>
int main()
{
__asm{};
}
однако компилятор ругается: "syntax error before '{' token"

В чем проблема?

Последний раз редактировалось MaTBeu; 22.05.2010 в 11:34.
Артэс вне форума Ответить с цитированием
Старый 22.05.2010, 08:36   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Обычно в таких случая пишут КАКОЙ ИМЕННО "компилятор ругается"...
p51x вне форума Ответить с цитированием
Старый 22.05.2010, 09:30   #3
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Извините, gcc
Артэс вне форума Ответить с цитированием
Старый 22.05.2010, 10:43   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

для gcc: http://www.google.ru/search?client=o...utf-8&oe=utf-8

А это для МСВС и Билдера
p51x вне форума Ответить с цитированием
Старый 22.05.2010, 11:55   #5
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Спасибо, разобрался. А еще вопрос такой:

вот cкомпилированную программу, написанную на ассемблере, через (nasm), можно поместить на загрузочный сектор дискеты, и эта программа выполнится при загрузке компьютера.

Можно ли написать такую программу на Си, и как её компилировать (через gcc?), что бы программа была не в Windows формате (ехе), а была пригодна для исполнения с загрузочного сектора дискеты?

Последний раз редактировалось Артэс; 22.05.2010 в 12:00.
Артэс вне форума Ответить с цитированием
Старый 22.05.2010, 16:58   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

сам загрузчик на асме надо писать, а далее и на С можно.
компилим через gcc
Цитата:
gcc -c -o entry.o entry.c
gcc -c -o m_kernel.o m_kernel.c -Xpreprocessor X86
ld -O -S -Ttext 0x200000 -Map map.txt --enable-stdcall-fixup -o m_kernel.bin entry.o m_kernel.o
objcopy -R .CRT -R .tls -R .endjunk -R .idata -R .edata -R .bss -R -S m_kernel.bin -O binary
ну тут я еще секции вырезаю чтоб бинарник меньше был...так же там мапфайл создаю(расположение всего в бинарнике меня интересовало)
найдите тему в разделе ассемблер Создание собственной ОС.
правда вы в защищенный переходить не собираетесь...так что надо изменить компиляцию на 16-битную.

в принципе можно рискнуть и на С загрузчик(первичный) писать, но это трудновато(придется либо свои секции юзать чтоб точно обозначить что где находится...либо не знаю как иначе)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставки из delphi Olaf C++ Builder 14 10.03.2010 19:52
Ассемблерные вставки Assassin Помощь студентам 1 26.05.2008 08:19
Уровень значимости Assembler'а сегодня [Kaiser] Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 15 07.09.2007 09:05
asm-вставки demon_sv Общие вопросы Delphi 1 14.02.2007 18:33