Bonjour,
JE voudrais comprendre ce code écrit en c assembleur :
Je sais le principe, c'est de sauvegarder le SP : (stack pointer) et le restaurer./* Context switching */
#define BACKUP_CTX(sp) \
asm ("mov r1, %0" : "=r"((sp)[0])); \
#define RESTORE_CTX(sp) \
asm ("mov %0, r1" :: "r"((sp)[0])); \
il s'agit d'une opération move;
mais je voudrais comprendre le "%0" et le "=r" et le (sp)[0]
Et lorsqu'on écrit asm(). est ce que c'est le cas pour tout type de microcôntrolleur?
merci.
Partager