volatile asm

0
asm volatile("nop" :::);

Cześć
Co znaczy volatile użyte względem asm?

1

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.

3

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1