bss段初始化

来源:互联网 发布:qt编程教程 编辑:程序博客网 时间:2024/05/23 15:03

几个知识点
初始化的全局变量存放在数据段;
局部变量存放在栈;
malloc分配的空间来自堆;
未初始化全局变量存放在bss段。
由此可以看出bss段的作用:保存未初始化的全局变量。
未初始化的含义为定义该变量时未对其进行赋值。

初始化bss段的实质是对bss段进行全段清零,使其所有数据的初始值都为0.只需要找到bss段的开头地址和结束地址,并对这两个地址之间的空间进行清零即可,开头地址和结束地址可通过连接脚本查的。
汇编代码:

clean_bss:    ldr r0, =bss_start    ldr r1, =bss_end    cmp r0, r1    moveq pc, lrclean_loop:    mov r2, #0    str r2, [r0], #4    cmp r0, r1    bne clean_loop    mov pc, lr
0 0
原创粉丝点击