Я видел код для Arduino и других аппаратных средств, которые имеют встроенную сборку с C, что-то вроде:
asm("movl %ecx %eax"); /* moves the contents of ecx to eax */
__asm__("movb %bh (%eax)"); /*moves the byte from bh to the memory pointed by eax */
Как это работает? Я понимаю, что каждый компилятор отличается, но каковы общие причины этого, и как кто-то может воспользоваться этим?