я кодирую в arduino, но я также использую ассемблерный код между моим кодом c. Я хочу вычислить грех значения. пока у меня есть этот код:
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
Serial.begin(9600);
float answer;
float angle = 2;
int a = 2;
int b = 3;
asm("ADD %0,%1" : "+r"(a) : "r"(b));
asm("fsin" : "=t" (answer) : "0" (angle));
Serial.print(answer);
}
ошибка, которую я получаю для этого: несовместимые ограничения операнда в «asm», забавно то, что я не получаю эту ошибку, когда удаляю последнюю строку (Serial.print (ответ))
также я нашел этот код для ассемблера 8086, а не для avr, и в 8086 "= t" специфичен для чисел с плавающей запятой, но я не могу найти ничего подобного для avr.
fsin
. Это вызов функции C и должен обрабатываться как таковой (CALL
). - person tofro   schedule 23.01.2017