swap (uint32_t val)
{
uint32_t tmp;
asm ("eor %1, %0, %0, ror #16;"
"bic %1, %1, #0xff0000;"
"mov %0, %0, ror #8;"
"eor %0, %0, %1, lsr #8" : "+r"(val), "=r"(tmp) : );
return val;
}
%1 ,%0 是参数1,0的意思吗?
------解决方案--------------------------------------------------------
%1 代表输入值X要放如的寄存器,%0 表示输出寄存器(前面一定要加'=')