本文共 390 字,大约阅读时间需要 1 分钟。
几个知识点
初始化的全局变量存放在数据段; 局部变量存放在栈; 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
转载地址:http://ceigi.baihongyu.com/