Почему не работает код?

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

#include <iostream>

using namespace std;

int main()
{ int i = 3, j = 4, k;
asm
{ mov ax, i;
add ax, j;
mov k, ax; }

cout << k; return 0; }

Компилировал GCC 4.3.3 в Gentoo Linux, пишет следующее:

asm.cpp: In function ‘int main()’:
asm.cpp:8: ошибка: expected `(' before ‘{’ token
asm.cpp:8: ошибка: нет декларации ‘mov’ в этой области видимости
asm.cpp:8: ошибка: expected `;' before ‘ax’
asm.cpp:9: ошибка: нет декларации ‘add’ в этой области видимости
asm.cpp:9: ошибка: expected `;' before ‘ax’
asm.cpp:10: ошибка: expected `;' before ‘k’
Ответы:
У вас ассемблерный синтаксис какой-то странный. Точки с запятой в асме не ставятся.
Хотя они отделяют комментарий, и не должны влиять....
Компилятор сообщает, что хочет видеть после слова asm не фигурную, а круглую скобку.
Небольшой поиск в интернете говорит, что там действительно должны быть круглые.
Может еще какой-нить инклуд нужен? Для поддержки асма-то?
вроде в гцц  для вставки инлайн ассемблерного кода нужно оформлять строкой и передавать эту строку в функцию asm();
Нашёл вот статейку, там есть глава про вставку ассмеблерного кода: http://www.opennet.ru/base/dev/from_c_to_asm.txt.html
и синтаксис ассемблера gcc отличается от интеловского


16 лет назад

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

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

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