目录
寻址与存储
物理地址
定义:所有接入电脑的内存件都将被赋予一个独有的编号,这个编号作为CPU访问其时的‘地址’存在,编号由零开始一维延伸,因此所有内存单元构成的存储空间是一个一维的线性空间
示例:8086CPU对应的内存
PS:除了专用的内存条之外,计算机的显存、各类外接设备的存储器,所有RAM与ROM存储元件都会被统一编址。
寻址能力
定义:CPU最多能够处理的地址的大小称为其寻址能力。由其一次可处理的数据的位数和地址总线的传输能力共同决定
示例:8086CPU是16位结构的CPU,其一次最多可处理16位数据,其寄存器的最大宽度也为16位,因此其内部处理、传输、暂存的地址必须是16位的,即若不采用其他手段,其寻址能力只有64KB。而其地址总线却有20位,可以传送20位地址,若CPU允许,可以提供1M的寻址能力。
段(基)地址与偏移地址
定义:用于合成为物理地址的两种地址,其中段地址又称基地址。
示例:对于8086CPU,其物理地址为20位地址,而其段地址与偏移地址都为16位地址,二者通过地址加法器转换为物理地址。
PS1:段地址*16相当于段地址左移4位
PS2:当段地址取123C,偏移地址取0008时,指向的物理地址同样是123C8,即指向同一个物理地址可用的段地址和偏移地址的组合并不唯一
PS3:设计这样的寻址方式,使得16位的CPU也可以将寻址能力提高到1MB
PS4:对于以上图示的段地址和偏移地址组合,使用1230:00C8来表示,而非123C8
字存储
定义:占用多个字节的字在内存中存储时,高位部分存储于内存编号高的字节中,低位部分存储于内存编号低的字节中。
示例:8086CPU中16位字在内存中的存储模式
PS1:如图,对于一个16位字数据4e20,将20存放在编号为0的8位地址单元中,将4e存放在编号为1的8位地址单元中
PS2:CPU读取内存时,对于4e20所在的存储空间是从0号存储单元开始读取的,0~1形成的16位存储单元也是用内存编号低的0作为其标识的。因此CPU对该数据的读取顺序和该数据的书写顺序是相反的,应当注意这一点(书写4e20时,先书写4e,后书写20,CPU读取时则先读取20后读取4e。)</