内存

Catalogue
  1. 1. 内存
    1. 1.1. 内存的寻址范围
    2. 1.2. 内存和寄存器的区别
    3. 1.3. 内存的5种表现形式
  2. 2. 数据存储模式

内存

冯诺依曼中用来存储程序和数据的部件叫做存储器,存储器分为主存储器(内存储器)和辅助存储器,主存储器也叫内存

内存的寻址范围

32位系统内存的寻址范围是0x00000000-0xFFFFFFFF

最大寻址范围:0xFFFFFFFF+1(4294967296)

1 Byte = 8 bit

1 KB = 1024 Byte

1 MB = 1024 KB

1 GB = 1024 MB

4294967296 Byte = 4 GB (32位系统最大内存是4 GB)

64位系统内存寻址范围:0x0000000000000000 – 0xFFFFFFFFFFFFFFFF

内存和寄存器的区别

内存:数量庞大,便宜,速度较慢

寄存器:数量少,昂贵,速度极快,位于CPU内部

内存的5种表现形式

立即数:

1
MOV EAX,DWORD PTR DS:0x????????]

把后面这个内存给EAX


寄存器:

1
2
MOV EBX ,0x????????
MOV EAX ,DWORD PTR DS:[EBX]

寄存器+立即数:

1
2
MOV EBX ,0x????????
MOV EAX ,DWORD PTR DS:[EBX + 4]

比例因子:

1
[REG + REG * {1,2,4,8}]

数组元素地址 = 数组首地址 + 元素索引 * 数组元素占用空间

1
2
3
MOV EAX ,0x????????
MOV EBX ,0x2
MOV ECX ,DWORD PTR DS:[EAX+EBX*4]

比例因子+立即数:

1
2
3
MOV EAX,0x????????
MOV EBX,0x2
MOV ECX,DWORDPTRDS:[EAX + EBX*4 +1]

数据存储模式

大端序:数据高位在内存低位,数据低位在内存高位,常用于ARM架构

小端序:数据高位在内存高位,数据低位在内存低位,常用于x86、AMD64架构