Я кодирую в arduino, но я также использую код сборки между моим кодом c. Я хочу рассчитать грех значения. до сих пор у меня есть этот код:Ограничения операндов AVR inline-assembly Fsin
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' на AVR. Это вызов функции C и должен обрабатываться как таковой ('CALL'). – tofro