我想通過交換指針指向的地址對程序集執行操作,現在我遇到的問題是我無法找到將指針傳遞到寄存器的方式,然後在數據中執行操作然後存儲該值指向另一個輸出指針。NDK中的arm內聯彙編,如何處理指針和尖銳的數據?
這是我的代碼: 我在想什麼?
void asmfunc(short *pOut, short *pIn) {
asm volatile(
"ldr r0, [in];"
"ldr r1, [out];"
"mov r2, r0;"
"lsr r2, [r2], #1;"
"str r1, [r2];"
:[out] "=m" (pOut)
:[in] "m" (pIn)
);
}
[中] - >%[中],[出] - >%[出],LSR將不訪問你的內存。應該有很多關於這些的教程。 http://www.ethernut.de/en/documents/arm-inline-asm.html – auselen