首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 組合語言

C 語言內嵌匯編實現字符串拷貝函數 strcpy()

     編輯:組合語言

ARM 內嵌匯編實現 strcpy

在 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 實現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved