内存地址和内存空间

Posted y4247464

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内存地址和内存空间相关的知识,希望对你有一定的参考价值。

在操作寄存器时,遇到概念上的理解问题。混淆了内存地址与内存空间

技术图片

 

 

 技术图片

 

 

 首先,读懂指令

 ldr    r0,=0x11000c40

  //0x11000c40是寄存器GPX2CON的地址,将这个地址写入r0寄存器的空间

  ldr    r1,[r0]

  //将r0空间的地址所指向的4字节数据,读入r1的内存空间,即r1储存了0x11000c40地址所指向的四字节空间数据

  bic    r1,#0xf0000000

  //将那四字节数据的高四位清零,即[31:28]->0000

  orr    r1,0x10000000

  //[31:28] :0000 --->  0001

  str    r1,[r0]

  //将r1里的数据存入r0存放的地址0x11000c40所指向的空间中

 

由上,可以知道内存地址只是一个编号,代表一个内存空间,就像你家的门牌号一样,通过地址可以访问到所指向的内存。那么这个内存空间是多大呢。在计算机中,存储器的容量是以字节为基本单位,每个字节都有一个地址,每四个字节即32位的内存空间为一个单元。

 

以上是关于内存地址和内存空间的主要内容,如果未能解决你的问题,请参考以下文章

Linux 内核 内存管理虚拟地址空间布局架构 ② ( 用户虚拟地址空间组成 | 内存描述符 mm_struct 结构体源码 )

linux内存管理--linux内核高端内存

方法与对象内存分析

程序内存地址的分配

物理内存管理:连续内存分配

物理内存管理:连续内存分配