首页互联网内存地址(内存地址的概念和理解 )

内存地址(内存地址的概念和理解 )

编程之家2024-02-11110次浏览

一、C语言编程中,内存物理地址是什么概念

用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。

内存地址(内存地址的概念和理解 )

——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是“与地址总线相对应”,是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理地址与物理的内存一一对应,也是可以接受的。也许错误的理解更利于形而上的抽像。

二、内存地址的概念

系统 RAM中的特定位置,通常以十六进制的数字表示。

在8086的实模式下,把某一段寄存器左移4位,然后与地址ADDR相加后被直接送到内存总线上,这个相加后的地址就是内存单元的物理地址,而程序中的这个地址就叫逻辑地址(或叫虚地址)。在80386的保护模式下,这个逻辑地址不是被直接送到内存总线,而是被送到内存管理单元(MMU)。MMU由一个或一组芯片组成,其功能是把逻辑地址映射为物理地址,即进行地址转换。

当使用80386时,我们必须区分以下三种不同的地址:

逻辑地址:

机器语言指令仍用这种地址指定一个操作数的地址或一条指令的地址。这种寻址方式在Intel的分段结构中表现得尤为具体,它使得MS-DOS或Windows程序员把程序分为若干段。每个逻辑地址都由一个段和偏移量组成。

内存地址(内存地址的概念和理解 )

线性地址:

线性地址是一个32位的无符号整数,可以表达高达2^32(4GB)的地址。通常用16进制表示线性地址,其取值范围为0x00000000~0xffffffff。

物理地址:

也就是内存单元的实际地址,用于芯片级内存单元寻址。物理地址也由32位无符号整数表示。

MMU是一种硬件电路,它包含两个部件,一个是分段部件,一个是分页部件,在本书中,我们把它们分别叫做分段机制和分页机制,以利于从逻辑的角度来理解硬件的实现机制。分段机制把一个逻辑地址转换为线性地址;接着,分页机制把一个线性地址转换为物理地址。

三、怎么理解 【内存单元】和【内存地址】

内存单元是计算机存储数据的最小单位,以字节计数

内存地址(内存地址的概念和理解 )

计算机在使用存储器时,要给这些存储器进行编号,这个编号就是地址

地址最小的就是字节地址

但有时数据不是以字节形式进行读写的,比如int型就是连续的4个字节组成,计算机就使用地址附加说明的方式来访问数据,一次读写就是4个字节

这些地址连续编号,就形成一整片地址区,地址顺序增大,最小单位是字节,这个连续编号就是所谓线性地址。

内存地址就是内存单元的编号,方便访问读写用的。

mdict 词库(mdx 词库文件)msn账号申请(如何申请MSN帐号和所MSN后缀邮箱申请)