一、栈
1.简介:
一个程序对应一个进程,一个进程对应一个栈空间,然后一个程序对应多个函数,每个函数都会在该栈空间分配到一个完全属于自己的子空间,该子空间就是栈帧。栈帧有边界,上边界是FP(r11),下边界是SP(r13),每一个主调函数的边界都会存放在她的被调函数的栈帧中。
2.作用:
(1)保存局部变量
(2)当参数大于四个时候可以传递参数
(3)可以保存寄存器的值
3.初始化栈
二、BSS段
1.作用:
(1)初始化的全局变量存放在data段
(2)局部变量存放在栈
(3)malloc出的变量存放在堆
(4)未初始化的全局变量存放在BSS段
2.初始化BSS段:
三、C语言与汇编混合编程
1.简介:
(1)汇编的效率高,直接转换为机器语言,而C要经过转换为汇编
(2)汇编直接控制硬件的寄存器
(3)C编写方便简洁
2.汇编调用C语言:
ldr pc,=函数名
例如:在start.s中添加
可以从汇编跳转到C语言main函数开始执行。
3.C语言调用汇编:
汇编函数(标号)需要先在汇编里声明为全局属性
然后在c里面直接:
标号名();
4.C语内嵌汇编:
(1)格式:
asm(
汇编语句部分
:输出部分
:输入部分
:破坏描述部分

本文详细介绍了C语言环境初始化的过程,包括栈的运作机制、作用及初始化,以及BSS段的功能和初始化BSS段的方法。此外,还探讨了C语言与汇编的混合编程,包括汇编如何调用C函数、C如何调用汇编函数以及C语内嵌汇编的使用规范和注意事项。
最低0.47元/天 解锁文章
1665

被折叠的 条评论
为什么被折叠?



