Я работаю на виртуалке, в убунту. Начал работать в gcc. Взял ассемблер, и пробовал сделать прибавитель. Но что-то пошло не так.
Код:
#include <iostream>
#include <stdio.h>
using namespace std;
int main(int argc, char** argv)
{
int a, b, c;
cin >> a;
cin >> b;
asm (
"mov a, %eax \n\t"
"mov b, %ebx \n\t"
"add %eax, %ebx \n\t"
"mov %ebx, c \n\t"
);
printf("%d", c);
return 0;
}
Компилирую, а тут фигня происходит:
pythonistgit@pythonistgit-VirtualBox:
~/Документи$ g++ -C -o test test.cpp
/usr/bin/ld: /tmp/cccT2YRx.o: relocation R_X86_64_32S against невизначений символ `a' can not be used when making a PIE object; виконайте повторне збирання з -fPIC
/usr/bin/ld: спроба остаточного компонування зазнала невдачі: Розділ, непридатний для виведення даних
collect2: error: ld returned 1 exit status
Кто-нибудь может объяснить в чем дело?