Van a C és az assembly között is nyelv, azt szeretettel használom.
uint32_t reg;
asm mov [reg], IO_PORT;
A regisztert a fordító foglalja le. Az asm képes C változót írni és olvasni. A konkrét szintaxisra nem emlékszem, annyit használom. :)
Regiszterek helyett változóneveket használsz.