程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> ARM匯編程序:C語言調用ARM匯編實現字符串的拷貝

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

編輯:匯編語言

簡單的實現將一個字符串復制到另外一個字符數組中。拷貝功能在ARM中實現。C語言調用匯編實現。C語言代碼:主要注意要將匯編中的函數導入進來。其余很簡單!我這樣賦值方便以後調試的時侯方便。

#include <stdio.h>    
extern void strcopy(char *d, const char *s);    
int main(int argc, char *argv[])    
{    
    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

referential from http://blog.csdn.net/z_monkey/article/details/8228003

本文出自 “驿落黃昏” 博客,請務必保留此出處http://yiluohuanghun.blog.51cto.com/3407300/1078080

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved