栈:局部变量 函数参数 函数返回地址
堆:程序员自己管理的内存区域,使用时需要动态申请, ---- 释放
bss : 初始化为 0 和未初始化的全局及静态变量
bss段(未手动初始化的数据)并不给该段的数据分配空间,只是记录数据所需空间的大小;
data :初始化不为 0 全局及静态变量
data段(已手动初始化的数据)则为数据分配空间,数据保存在目标文件中;
(全局变量初始化不为0会增加代码所占空间)
bss和data段整个区段被称为数据区
CPU结构
计算机两大结构
计算机结构
冯诺依曼结构:
数据和指令一起存储
(速度较哈佛结构慢些,同一时间只能存取一条指令或一条数据)
哈佛结构:
数据和指令分开存储(下图属于哈佛结构)
(速度更快,同一时间可以同时存取一条数据和一条指令)
CPU构成
寄存器: R0~R12
PC: 程序计数器, 默认值为 0 , 做自加运算, 实际指向正在运行的下下条指令
LR: 链接寄存器 保存函数的返回地址
SP: 栈指针寄存器, 指向栈顶
增栈:从低地址向高地址增长
减栈:从高地址向低地址增长
满栈:存数据时,栈顶指针先加一再存数据,栈顶指针指向新入栈的数据
空栈:存数据时,数据先存入栈顶指针指向的空间,再加一,此时栈顶指针指向空
使用满减栈:
减栈:若数据入栈溢出时 不会溢出到内核区,而是堆区
满栈:当最后一个数据出栈后,栈顶指针不会越界
CPSR: 运算结果为正、负、进借位、结果为 0 等标志, 中断的使能, 工作状态,工作模式
SPSR: CPSR 的备份
Cache: 缓存
MMU : 内存管理单元 ( 虚拟地址到物理地址的映射 )
Soc
CPU :中央处理单元
MCU :微控制器 51 单片机
MPU :微处理器 intel
DSP :数字信号处理器
FPGA :现场可编程门阵列 -- 硬件设计语言
总线
数据总线:
地址总线:
控制总线:读写信号等
AHB :高速总线
APB :低速总线
指令集
RISC :精简指令集
CISC :复杂指令集