1. 存储器编址概述
- 定义: 存储器中的每一个存储单元都有唯一的地址。
- 目的: 确保数据能够被正确地存取。
- 编址方式种类
- 按字节编址: 每个字节有独立的地址。
- 按字编址: 每个字(如16位或32位)有独立的地址。
2. 按字编址细节
- 字的地址: 在按字编址的系统中,每个完整的字(如16位或32位)有一个地址。
- 双字的地址: 连续两个字(如32位或64位)作为一个整体处理,即双字,也有其单独的地址。
3. 基本信息单元
- Bit (二进制位): 最小的数据单位,只能表示两种状态,即0或1。
- Byte (字节): 8个Bit组成一个Byte。
- Word (字): 通常由2个Byte组成,即16位。
- Dword (双字): 由2个Word组成,即4个Byte,共32位。
4. 寄存器
- AX 寄存器: 通用寄存器,用于算术运算和数据传输。
- AL 寄存器: AX 寄存器的低8位部分。
- AH 寄存器: AX 寄存器的高8位部分。
- BX 寄存器: 通用寄存器,用于存储地址等信息。
- BL 寄存器: BX 寄存器的低8位部分。
- BH 寄存器: BX 寄存器的高8位部分。
- CX 寄存器: 通用寄存器,常用于循环计数。
- CL 寄存器: CX 寄存器的低8位部分。
- CH 寄存器: CX 寄存器的高8位部分。
- DX 寄存器: 通用寄存器,用于辅助运算。
- DL 寄存器: DX 寄存器的低8位部分。
- DH 寄存器: DX 寄存器的高8位部分。
5. 地址总线与寄存器
- 8088/8086 地址总线: 用于传输存储器地址,决定了处理器能够访问的最大内存空间。
- 偏移地址的目的: 与段地址结合使用,确定存储器中具体位置的实际物理地址。
- SP 堆栈指针寄存器: 指向当前堆栈的顶部。
- BP 基址指针寄存器: 用于存储基地址,通常与偏移地址一起使用。
- 物理地址与 SP 和 BP 的关系: 物理地址 = 段地址 × 16 + 偏移地址。SP 和 BP 分别作为堆栈顶和基地址的一部分,参与物理地址的计算。
6. 其他寄存器的作用
- SI 和 DI 的作用:
- SI (源索引寄存器): 通常用于指向源数据的地址。
- DI (目标索引寄存器): 通常用于指向目标数据的地址。
- 自动减量功能: 在某些情况下,SI 和 DI 可以自动减少,例如在字符串操作指令中。
7. 标志寄存器
- CF (进位标志): 表示是否有进位或借位发生。
- AF (辅助进位标志): 用于BCD(二进制编码十进制)运算中的进位。
- 零标志: 表示运算结果是否为零。
- 符号标志: 表示运算结果的符号(正或负)。
- 溢出标志: 表示运算过程中是否有溢出。
- PF (奇偶标志): 表示运算结果中1的个数是奇数还是偶数。
8.控制寄存器
ip---指令寄存器:储存代码中的偏移地址
(ip要与CS寄存器相结合才能形成真正的物理地址)
PSW---程序状态寄存器,16位寄存器,只用了其中9位
9.物理地址的计算
1. 分段机制
- 段寄存器: 包括CS(代码段)、DS(数据段)、SS(堆栈段)和ES(附加段)。
- 偏移地址: 是相对于段基址的一个偏移量。
2. 物理地址计算公式
物理地址=段地址×16+偏移地址物理地址=段地址×16+偏移地址
3. 具体步骤
- 获取段地址:从相应的段寄存器中读取段地址。
- 左移四位:将段地址左移四位(相当于乘以16),得到一个更大的数值。
- 加上偏移地址:将上一步得到的结果与偏移地址相加,最终得到物理地址。
10.物理地址的存储和作用
-
存储位置:
- 物理地址通常由中央处理单元(CPU)生成,并存储在CPU内部的地址寄存器中。
- 在访问内存时,物理地址会通过地址总线发送给内存控制器。
-
地址空间:
- 对于现代计算机而言,物理地址空间指的是所有物理内存的集合。
- 比如,在32位系统中,物理地址通常可以覆盖4GB的地址空间(即232232字节)。
-
映射关系:
- 在虚拟内存系统中,物理地址与虚拟地址之间存在映射关系。操作系统通过页表等机制来管理这种映射,使得每个进程都有自己的虚拟地址空间
4.硬件接口:物理地址也是CPU与内存硬件之间的接口,它确保了数据能够在两者间正确传输