通过stm32汇编来看C语言数组内存分配

如下图:
一个u8 test的数组
通过stm32汇编来看C语言数组内存分配_第1张图片
从上述汇编语言可以看到:

数组中的元素是字面量,编译后就保存在0x080010f0 flash的RO code中
运行到该处的程序时,在栈中开辟空间(sub sp指令)将字面量保存到栈中
先给栈中高地址分配数组高位元素,再给栈中低地址分配数组低位元素

涉及到的指令详解如下:
SUB指令
在这里插入图片描述
第七章 ARM 反汇编基础(四)(ARM 汇编语言)

通过stm32汇编来看C语言数组内存分配_第2张图片
ARM LDR和ADR指令
LDM指令
通过stm32汇编来看C语言数组内存分配_第3张图片
ARM指令ldr、str、stm、ldm理解

分配完后可以看到在栈地址0x200013b8处看到该数组存放的元素值
通过stm32汇编来看C语言数组内存分配_第4张图片

你可能感兴趣的:(stm32,C,stm32,汇编,c语言)