Программирование на C и C++

Онлайн справочник программиста на C и C++

asm в c++

вт, 01/06/2015 - 00:03 -- Гость (не проверено)

Приветствую!
Хотел бы поинтерисоваться по такому вопросу.
Решил вставить код ассемблера в программу с++. Нашел много разных способов, таких как :

asm{
//code
};

и такие как

__asm(
//code
);

Я (Ubuntu 12.04 g++ v4.1) после нескольких дней ужаса нашел способ написания лично у меня

#include <iostream>
.
.
.
int sum = 0, a = 2, b = 3;

__asm(
"mov %0, %%eax;"
"mov %1, %%ebx;"
"add %%eax, %%ebx;"
:
"=r" (sum)
:
"r" (a), "0" (b)
);

cout<<sum;

вот тогда будет сумма 2х чисел...
Объясните зависимости систем/компиляторов плиз)

Комментарии

Опубликовано пользователем wiright (не проверено)

поправочка, g++ 4.8 ))))

Аватар пользователя admin
Опубликовано пользователем admin
Если строчка на асемблере одна то можно использовать __asm. Если строчек на асемблере много, тогда используется asm {}. Кажется как то так.