Что то я так и не понял с inline-асмом в GCC

программирование C++ ассемблер

вот код:
void func ()
{
asm (
"mov ax, 4\n\t"
"mov bx, 2\n\t"
"mov cx, 3" );
}

int main ()
{ return 0; }

он компилится хорошо, без ошибок и варнингов (g++ -o asm asm.cpp -masm=intel), но... как писать большие куски на асме? неужели придётся так, по-уродски, в кавычках и с \n\t ? Если можно как-то по-другому, то приведите пожалуйста пример (скажем, Hello world в асмовом куске)

Примечание:
Ну всё таки ка то это можно замутить? Люди говорили, что можно так
asm
{ код на асме }
но так не канает
Ответы:
Ассемблерный код, если уж он так нужен, чаще всего выносят в отдельные файлы (с расширением .S), в котором весь код только на ассемблере без всяких \n и прочих заморочек. Потом всё это дело компилируется и линкуется вместе с основной программой. Вставки для больших кусков практически не используется.
Вот пример для i386 (синтаксис я использовал AT&T)
В смысле, получаем исполняемый файл с именем program


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.