fragment assemblera w C

0

Cześć :)
Mamy taki kod:

asm volatile("funkcja %1, %0" : : "dN" (port), "a" (value));

Ten kod mam umieszczony w funkcji. Skompilowałbym sobie i podpatrzył, ale na razie jest to część większego projektu i nie mogę skompilować na ten moment.

"funkcja" to funkcja zdefiniowana przeze mnie.
Co oznacza ten kod? W szczególności, co robi tutaj volatile- kojarzę raczje w ujęciu współbieżności.
Co oznaczają te procenty w nasiwasie? Co to jest ten port, value?
Pozdrawiam :)

4

Tego nikt nie wie. ;-)

GCC ma jakąś udziwnioną metodę wprowadzania wstawek ASM w kodzie, poczytaj dokumentację: https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html

Nie zapomnij, że domyślnie GCC używa składni AT&T (kolejne dziwactwo). Można to zmienić za pomocą opcji -masm=intel.

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