在 ARM 架構下,利用 GCC 內嵌匯編高效實現字符串拷貝:
static inline char *__kernel_strcpy(char *dest, const char *src) {
char *xdest = dest;
asm volatile (
"\n"
"1: move.b (%1)+,(%0)+\n"
" jne 1b"
: "+a" (dest), "+a" (src)
:
: "memory"
);
return xdest;
}
關鍵點:
move.b 單字節複製並自增指針jne 1b 循環直到複製到 '\0' (零標誌位)"+a" 輸入輸出操作數綁定寄存器"memory" 告知編譯器內存被修改調用方式同標準 strcpy,性能優於純 C 實現。