混合编程(c + asm )
文章平均质量分 63
cos_sin_tan
热爱移动开发,专注成长
展开
-
一段简单的C反汇编
#include#includeint main(){ int c[5]; c[0] = 10; c[1] = 1 ; c[2] = 2 ; c[3] = 3 ; c[4] = 4 ; return 0;}原创 2011-09-12 20:00:44 · 633 阅读 · 0 评论 -
C函数调用与堆栈的变化
转载自这个博客:http://www.cnblogs.com/dahai/archive/2011/07/29/2120651.html感想:这个的堆栈的图示画的还是非常好的。。。。。。。,反汇编的注释也是相当通俗易懂,就是纳闷,我的反汇编的代码为嘛不好复制出来呢,本来想自己转载 2011-09-12 18:39:30 · 1810 阅读 · 0 评论 -
Linux Asm + C (int 0x80)
转自的博客地址:http://blog.sina.com.cn/s/blog_79b802790100q8tt.html 终于体验到在Linux下使用Asm 和 C的混合编写生成-elf文件。 在程序中的函数相互调用显然使用的是堆栈进行。而中断 i转载 2011-09-15 19:13:08 · 987 阅读 · 0 评论 -
C和arm的汇编的互相调用
1:在arm和C的相互调用中,R0,R1,R2,R3是默认的参数1,参数2,参数3,参数4的存放寄存器。其余的参数存在堆栈中,系统会自动的调用。这个规则对于C调用汇编,或者汇编调用C都同样有效。一开始我还以为只是汇编调用C的时候是这样的。2:汇编调用C语言starts.sIMPORT ADDFAREA FCC,CODE,READONLYENTRYstartMOV R原创 2012-04-17 23:27:42 · 2485 阅读 · 2 评论 -
keil arm启动代码的分析
;/****************************************Copyright (c)**************************************************;** Guangzou ZLG-MCU Development Co.,LTD.;**原创 2012-06-15 21:04:15 · 2033 阅读 · 0 评论 -
__swi(0x00) void SwiHandle1(int Handle)分析
__swi(0x00) void SwiHandle1(int Handle)__swi(0x00) void SwiHandle1(int Handle);vicControl.h 有这样一句函数声明__swi(0x00) void SwiHandle1(int Handle);他的函数体在哪里?__swi(0x00) void SwiHandle1(int Hand转载 2012-06-15 19:45:54 · 2107 阅读 · 1 评论 -
重新回顾这篇比较透彻的C函数调用和堆栈关系的文章的心得
站内链接:http://blog.csdn.net/cos_sin_tan/article/details/67694931:堆栈是向下生长的,可是作者画的时候确实从下面往上,虽然也是向下生长的一个栈,但是看起来怪别扭。记住记住,从栈地址看吧!2:关于返回值: 返回值 4 如果大于8 的话,接收返回值的地址变量会作为一个额原创 2012-07-31 01:20:17 · 974 阅读 · 0 评论 -
汇编和C相互调用,keil环境,arm体系
C代码:#include extern void mystrcpy(char *s1,const char *s2);int main(void){ const char *string1="test example"; char *string2="xxxxxxxxxxxx"; mystrcpy(string2,string1); while(1)转载 2012-09-23 12:45:32 · 2883 阅读 · 0 评论