Итак, у меня есть очень простая программа, написанная в C (.c файле) с частью сборки в сборе. Я хочу преобразовать файл .c в сборку, который я знаю, но не знаю, как скомпилировать этот код для среды Linux.
При использовании gcc или g++ для .cpp файлов я получаю ошибки, не распознающие инструкции asm.
Теперь этот код работает так же, как и в Visual Studio, кроме меня, меняя скобки для кода asm в скобки. Однако я все еще получаю ошибки. Связка undefined ссылок на переменные.
Изменения, которые я сделал из рабочего кода, меняют скобки в круглые скобки, ввод инструкции сборки в кавычки (найденный в Интернете, может быть неправильным).
Короче говоря, я хочу, чтобы код, приведенный ниже, мог быть скомпилирован успешно в среде Linux, используя команду gcc. Я не знаю синтаксиса, но код работает, просто не для linux/.
#include <stdio.h>
int main()
{
float num1, num2, sum, product;
float sum, product;
float f1, f2, f3, fsum, fmul;
printf("Enter two floating point numbers: \n");
scanf("%f %f", &num1, &num2);
__asm__
(
"FLD num1;"
"FADD num2;"
"FST fsum;"
);
printf("The sum of %f and %f " "is" " %f\n", num1, num2, fsum);
printf("The hex equivalent of the numbers and sum is %x + %x = %x\n", num1, num2, fsum);
return 0;
}