@yii_lover

Как работать со строками с++ в Inline Assembler (компилятор gcc синтаксис AT&T)?

Вообще очень мало толковой информации нашел про Inline Assembler и про синтаксис AT&T в целом.
Материал на вики
Англоязычный мануал

Есть рабочий кусок над которым эксперементировал, но результата нужного не получил.
#include <iostream>	

int add(int a, int b){
        int res;
        asm("movl %1, %%eax\n\
        inc %%eax\n\
        addl %2, %%eax":"=a"(res):"m"(a),"m"(b));//AT&T
      return res;
}

int main()
{
    using namespace std;

    int a=5, b=5;
    printf("a = %d\nb = %d\n", a, b);
    int c = add(a, b);
    printf("%d + %d + 1 = %d\n", a, b, c);

    system("PAUSE");
    return 0;
}


Пробовал оператором сдвига получить адрес но выходило, что то не то.
На ассемблере программировать вроде научился, но на 16 битном (не думаю, что разница огромная)
Куда копать, что читать? Помогите люди добрые
  • Вопрос задан
  • 2955 просмотров
Решения вопроса 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
но результата нужного не получил

В чём ваш вопрос? Какого результата вы хотели?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы