## 变量内存分析 - 内存模型 + 内存模型是线性的(有序的) + 对于 32 机而言,最大的内存地址是2^32次方bit(4294967296)(4GB) + 对于 64 机而言,最大的内存地址是2^64次方bit(18446744073709552000)(171亿GB) ![](https://img-blog.csdnimg.cn/img_convert/c15e330e2723191671e55b27cd9e4f1c.png) - CPU 读写内存 + CPU 在运作时要明确三件事 * 存储单元的地址(地址信息) * 器件的选择,读 or 写 (控制信息) * 读写的数据 (数据信息) - 如何明确这三件事情 + 通过地址总线找到存储单元的地址 + 通过控制总线发送内存读写指令 + 通过数据总线传输需要读写的数据 > * 地址总线: 地址总线宽度决定了CPU可以访问的物理地址空间(寻址能力) > + 例如: 地址总线的宽度是1位, 那么表示可以访问 0 和 1的内存 > + 例如: 地址总线的位数是2位, 那么表示可以访问 00、01、10、11的内存 > * 数据总线: 数据总线的位数决定CPU单次通信能交换的信息数量 > + 例如: 数据总线:的宽度是1位, 那么一次可以传输1位二进制数据 > + 例如: 地址总线的位数是2位,那么一次可以传输2位二进制数据 > * 控制总线: 用来传送各种控制信号 - 写入流程 + CPU 通过地址线将找到地址为 FFFFFFFB 的内存 + CPU 通过控制线发出内存写入命令,选中存储器芯片,并通知它,要其写入数据。 + CPU 通过数据线将数据 8 送入内存 FFFFFFFB 单元中 ![](https://img-blog.csdnimg.cn/img_convert/ed76e9a4a2ce06d0a3cd20192956f863.png) - 读取流程 + CPU 通过地址线将找到地址为 FFFFFFFB 的内存 + CPU 通过控制线发出内存读取命令,选中存储器芯片,并通知它,将要从中读取数据 + 存储器将 FFFFFFFB 号单元中的数据 8 通过数据线送入 CPU寄存器中 ![](https://img-blog.csdnimg.cn/img_convert/2fb17f543aa500524932669a322cd57a.png) - 变量的存储原则 + 先分配字节地址大内存,然后分配字节地址小的内存(内存寻址是由大到小) + 变量的首地址,是变量所占存储空间字节地址(最小的那个地址 ) + 低位保存在低地址字节上,高位保存在高地址字节上 ```c 10的二进制: 0b00000000 00000000 00000000 00001010 高字节← →低字节 ``` 最后,如果有任何疑问,请加微信 leader_fengy 拉你进学习交流群。 开源不易,码字不易,如果觉得有价值,欢迎分享支持。