2.2.2 内存地址译

Posted xihui

tags:

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

      内存由许许多多单元(或场所)组成,每个都能存储一块信息。每个单元有个编号,称作地址,程序可以通过该地址找到对应的单元。如果内存有n个单元,他们的编号就是0到n-1。一个内存中的所有单元拥有相同数量的比特。如果一个单元有k个比特,它能保存任意2^k种比特组合之一。图2-9展示了96位内存的三种组织方式。注意相邻的单元有着连续的地址(按定义)。

技术图片

      计算机使用二进制数字系统(包括八进制和十六进制符号)来把内存地址表示为二进制编号。如果一个地址有m位,则单元的最大可编址编号是2^m。比如指向图2-9(a)的地址至少需要4位,用来表示从0到11的所有编号。然而一个3比特地址对于图2-9(b)和2-9(c)来说足够了。地址编码的位数决定了内存中直接寻址单元的最大数量,并且该位数和每个地址单元能存放的比特数没有关联。一个有着2^12个单元,每单元存放8比特的内存和一个有着2^12个单元,每个单元存放64比特的内存都需要12位地址。

      图2-10列出了曾经出售过的某些计算机中每个内存单元存放比特的数量。

技术图片

      内存单元的重要性体现在最小可编址单元上。最近几年,几乎所有的计算机厂商都标准化了8比特存储单元,又称作(byte)字节。也可以用术语octet。多个字节组织成一个字。32位字的计算机有着4字节/字,64位计算机有着8字节/字。字的重要性在于,大部分指令都操作完整的字,比如把两个字相加。因此32位计算机由32位寄存器和32位指令来操作32位的字,反之,64位计算机有着64位寄存器和64位指令,用于移动,加,减,和其他对64位字的操作。

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

Visual Studio 2008 C++ 误报内存地址位置

什么是CPU的时序

记录windows下编译chromium,备忘

Windows 逆向内存地址分析 ( 内存条 | 虚拟内存 | 内存地址及寻址范围 | 内存地址与数据的关系 )

java String 内存地址问题?如何获取 String 内存地址!

Windows 逆向内存地址分析 ( 动态地址 | 静态地址 | 偏移量 )