asm volatile("nop" :::);
Cześć
Co znaczy volatile użyte względem asm?
asm volatile("nop" :::);
Cześć
Co znaczy volatile użyte względem asm?
Wystarczy pogooglować dokumentację ;)
https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html
Jeśli bardziej Ci zależy na efektach ubocznych instrukcji i chcesz je wykonać tu i teraz to użyj volatile. W przeciwnym wypadku kompilator zrobi tak, aby zgodnie z regułą "as if" było zgodnie, ale szybciej, czyli może poprzestawiać instrukcje.
Zdaje się że wyłącza to możliwość "ruszenia" tej wstawki asmemblerowej np ze względu na optymalizacje. Czyli kod asma będzie wykonany dokładnie tam gdzie go umieściłeś w swoim kodzie i dokładnie w tej postaci.