bss段初始化

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

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

clean_bss:
    ldr r0, =bss_start
    ldr r1, =bss_end
    cmp r0, r1
    moveq pc, lr

clean_loop:
    mov r2, #0
    str r2, [r0], #4
    cmp r0, r1
    bne clean_loop
    mov pc, lr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值