ARM汇编程序---C语言调用ARM汇编实现字符串的拷贝

简介:
 
  1.     简单的实现将一个字符串复制到另外一个字符数组中。拷贝功能在ARM中实现。C语言调用汇编实现。C语言代码:主要注意要将汇编中的函数导入进来。其余很简单!我这样赋值方便以后调试的时侯方便。
  2.  
  3.  
  4. #include <stdio.h> 
  5. extern void strcopy(char *d, const char *s); 
  6. int main(int argc, char *argv[]) 
  7.     const char *srcstr="abcdefghi"
  8.     char dststr[]="ighfedcba";   
  9.     strcopy(dststr,srcstr); 
  10.     return 0; 
  11. }            

         ARM汇编代码:在此汇编代码中,主要是注意将拷贝函数导出,将C语言main函数导入,注意在调试的时候你会发现,R0,R1寄存器存储的是两个传入参数的存储地址,所以后期通过LDR和STR即可实现,主要是要不断的调试你就会熟悉这个参数是怎么传入的,还有就是注意通过寻址观察目标字符数组的变化,是否复制成功。

 

 
  1. STACK_TOP EQU 0x40002000 
  2.     PRESERVE8 
  3.     AREA SCopy, CODE, READONLY 
  4.     EXPORT START 
  5.     EXPORT strcopy 
  6.     import main 
  7.     ENTRY 
  8. START 
  9.     LDR R13,=STACK_TOP 
  10.     B main 
  11. strcopy                  
  12.     LDRB r2, [r1],#1  
  13.     STRB r2, [r0],#1  
  14.     CMP  r2, #0         
  15.     BNE  strcopy         
  16.     MOV  pc,lr       
  17.              
  18.     END  

 

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

 




本文转自 驿落黄昏 51CTO博客,原文链接:http://blog.51cto.com/yiluohuanghun/1078080 ,如需转载请自行联系原作者

相关文章
|
编译器
【ARM汇编速成】零基础入门汇编语言之基本认识(一)
【ARM汇编速成】零基础入门汇编语言之基本认识(一)
337 0
|
存储 编译器 C语言
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
370 0
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
|
存储 移动开发 C语言
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
312 0
|
编译器 C语言 计算机视觉
【ARM汇编速成】零基础入门汇编语言之指令集(二)
【ARM汇编速成】零基础入门汇编语言之指令集(二)
1148 0
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
419 3
|
程序员 编译器 数据处理
汇编高手秘籍:解锁性能优化新境界,用汇编语言让你的程序飞起来!
【8月更文挑战第31天】汇编语言作为编程基石,其高效性能备受推崇。尽管现代软件开发更偏爱高级语言,但在性能要求极高的场景下,汇编优化仍不可或缺。本文通过示例代码介绍四种优化技巧:循环展开、寄存器分配、指令重排及SIMD指令使用,显著提升执行效率。同时强调分析性能瓶颈、测试优化效果及保持代码可读性的重要性,助力开发者在关键代码路径上实现性能突破。
738 0
|
编译器 开发者 C++
8086 汇编笔记(三):第一个程序
8086 汇编笔记(三):第一个程序
|
存储 编译器
C51汇编程序
C51汇编程序
285 5

热门文章

最新文章