ARM9—S3C2440学习
文章平均质量分 78
HNUlanwei
这个作者很懒,什么都没留下…
展开
-
ARM中断控制器
为什么在调用c函数时需要先设置栈指针?一.栈的整体作用 (1)保存现场/上下文 (2)传递参数:汇编代码调用c函数时,需传递参数 (3)保存临时变量:包括函数的非静态局部变量以及编译器自动生成的其他临时变量。 二.为什么汇编代码调用c函数需要设置栈 之前看了很多关于uboot的分析,其中就有说要为C语言的运行,准备好栈。而自己在Uboot的start.S汇编原创 2014-12-29 20:20:37 · 598 阅读 · 0 评论 -
新手必须看的arm汇编基础
先看个例子:void test2(int a,int b,int c){ int k=a,j=b,m=c;}GCC反汇编:00000064 :mov ip, sp //IP=SP;保存SP新手stmdb sp!, {fp, ip, lr, pc} //先对SP减4,再对fp,ip,lr,pc压栈。--------转载 2014-12-29 20:46:20 · 397 阅读 · 0 评论 -
ARM中的MOV与LDR小结
RM是RISC结构,数据从内存到CPU之间的移动只能通过L/S指令来完成,也就是ldr/str指令。比如想把数据从内存中某处读取到寄存器中,只能使用ldr比如:ldr r0, 0x12345678就是把0x12345678这个地址中的值存放到r0中。而mov不能干这个活,mov只能在寄存器之间移动数据,或者把立即数移动到寄存器中,这个和x86这种CISC架构的芯片区别最大的地方。x原创 2015-01-05 15:25:30 · 583 阅读 · 0 评论 -
ARM汇编之连接脚本 .lds解析
对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下 GNU官方网站上:http://www.gnu.org/对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( lda转载 2015-01-06 21:12:45 · 1127 阅读 · 0 评论