歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

ARM匯編程序---C語言調用ARM匯編實現字符串的拷貝

簡單的實現將一個字符串復制到另外一個字符數組中。拷貝功能在ARM中實現。C語言調用匯編實現。

C語言代碼:主要注意要將匯編中的函數導入進來。其余很簡單!我這樣賦值方便以後調試的時侯方便。

#include <stdio.h> 
extern void strcopy(char *d, const char *s); 
 
int main() 

    const char *srcstr="abcdefghi"; 
    char dststr[]="ighfedcba";   
    strcopy(dststr,srcstr); 
    return 0; 
}   

ARM匯編代碼:在此匯編代碼中,主要是注意將拷貝函數導出,將C語言main函數導入,注意在調試的時候你會發現,R0,R1寄存器存儲的是兩個傳入參數的存儲地址,所以後期通過LDR和STR即可實現,主要是要不斷的調試你就會熟悉這個參數是怎麼傳入的,還有就是注意通過尋址觀察目標字符數組的變化,是否復制成功。

STACK_TOP EQU 0x40002000 
    PRESERVE8 
    AREA SCopy, CODE, READONLY 
    EXPORT START 
    EXPORT strcopy 
    import main 
    ENTRY 
START 
    LDR R13,=STACK_TOP 
    B main 
strcopy                 
    LDRB r2, [r1],#1 
    STRB r2, [r0],#1 
    CMP  r2, #0         
    BNE  strcopy         
    MOV  pc,lr       
             
    END 

Copyright © Linux教程網 All Rights Reserved